GO語言————6.7 將函式作為引數
6.7 將函式作為引數
函式可以作為其它函式的引數進行傳遞,然後在其它函式內呼叫執行,一般稱之為回撥。下面是一個將函式作為引數的簡單例子(function_parameter.go):
package main
import (
"fmt"
)
func main() {
callback(1, Add)
}
func Add(a, b int) {
fmt.Printf("The sum of %d and %d is: %d\n", a, b, a+b)
}
func callback(y int, f func(int, int)) {
f(y, 2) // this becomes Add(1, 2)
}
輸出:
The sum of 1 and 2 is: 3
將函式作為引數的最好的例子是函式 strings.IndexFunc()
:
該函式的簽名是 func IndexFunc(s string, f func(c int) bool) int
,它的返回值是在函式 f(c)
返回 true、-1 或從未返回時的索引值。
例如 strings.IndexFunc(line, unicode.IsSpace)
就會返回 line
中第一個空白字元的索引值。當然,您也可以書寫自己的函式:
func IsAscii(c int) bool {
if c > 255 {
return false
}
return true
}
在第 14.10.1 節中,我們將會根據一個客戶端/服務端程式作為示例對這個用法進行深入討論。
type binOp func(a, b int) int
func run(op binOp, req *Request) { … }
練習 6.7
包 strings
中的 Map
函式和 strings.IndexFunc()
一樣都是非常好的使用例子。請學習它的原始碼並基於該函式書寫一個程式,要求將指定文字內的所有非 ASCII 字元替換成 ?
或空格。您需要怎麼做才能刪除這些字元呢?
相關文章
- Go語言Slice作為函式引數詳解Go函式
- C語言 將函式(有參、無參)作為引數傳遞C語言函式
- GO語言————6.9 應用閉包:將函式作為返回值Go函式
- GO語言————6.2 函式引數與返回值Go函式
- 對 “C語言指標變數作為函式引數” 的個人理解C語言指標變數函式
- Go 語言函式Go函式
- 函式作為引數傳遞函式
- GO語言————6.1 函式Go函式
- Go 語言 -make函式Go函式
- Python中將函式作為另一個函式的引數傳入並呼叫Python函式
- 將函式作為引數傳遞解決非同步問題函式非同步
- go語言學習-函式Go函式
- 將使用回撥函式作為引數的函式改造為返回 Promise 的一個具體例子函式Promise
- 【C語言】函式的概念和函式的呼叫(引數傳遞)C語言函式
- 函式 -- 就要學習 Go 語言函式Go
- GO語言————6.5 內建函式Go函式
- GO語言————6.6 遞迴函式Go遞迴函式
- go語言獲取外部引數Go
- C語言用二維陣列作為函式入口引數的小結C語言陣列函式
- Go函式接收可變引數Go函式
- 揭秘 Go 中的函式引數Go函式
- PHP vs Go,為什麼 Go 不支援命名引數呼叫函式?PHPGo函式
- 5.go語言函式提綱Go函式
- Python之在函式中使用列表作為預設引數Python函式
- 陣列作為函式引數陣列函式
- 【Go】Go語言學習筆記-2-函式Go筆記函式
- 小白學習Golang(六)Go語言函式Golang函式
- go語言入門之-函式和方法Go函式
- GO語言入門 - (六)函式和方法Go函式
- GO語言————6.3 傳遞變長引數Go
- Oracle:SYS_REFCURSOR作為函式中的輸出引數Oracle函式
- Golang 切片作為函式引數傳遞的陷阱與解答Golang函式
- 【Go語言學習】匿名函式與閉包Go函式
- Go語言命令列程式和他們的引數Go命令列
- 函式引數 引數定義函式型別函式型別
- C語言函式傳遞指標引數的問題詳解C語言函式指標
- 可變資料型別不能作為python函式的引數資料型別Python函式
- 瞭解 JavaScript 函數語言程式設計 - 宣告式函式JavaScript函數程式設計函式