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語言函式
- 使用java模擬scala函數語言程式設計將函式作為引數傳入方法中Java函數程式設計函式
- GO語言————6.9 應用閉包:將函式作為返回值Go函式
- GO語言————6.2 函式引數與返回值Go函式
- 對 “C語言指標變數作為函式引數” 的個人理解C語言指標變數函式
- 函式作為引數傳遞函式
- Go 語言函式Go函式
- 物件,函式作為一個函式的引數物件函式
- 關於C++引用做為函式引數和指標作為函式引數C++函式指標
- GO語言————6.1 函式Go函式
- 將函式作為引數傳遞解決非同步問題函式非同步
- js函式作為函式的引數程式碼例項JS函式
- Python中將函式作為另一個函式的引數傳入並呼叫Python函式
- go語言學習-函式Go函式
- 將使用回撥函式作為引數的函式改造為返回 Promise 的一個具體例子函式Promise
- go語言獲取外部引數Go
- 【C語言】函式的概念和函式的呼叫(引數傳遞)C語言函式
- 函式 -- 就要學習 Go 語言函式Go
- GO語言————6.5 內建函式Go函式
- GO語言————6.6 遞迴函式Go遞迴函式
- PHP vs Go,為什麼 Go 不支援命名引數呼叫函式?PHPGo函式
- C語言用二維陣列作為函式入口引數的小結C語言陣列函式
- Go函式接收可變引數Go函式
- Swift 1.1語言函式引數的特殊情況本地引數名外部引數名Swift函式
- C#的Replace函式,使用函式作為的引數需要注意C#函式
- 5.go語言函式提綱Go函式
- 有沒有試過將函式作為引數(parameter)來傳遞?(推薦) (轉)函式
- 【Go】Go語言學習筆記-2-函式Go筆記函式
- GO語言————6.3 傳遞變長引數Go
- Python之在函式中使用列表作為預設引數Python函式
- go語言入門之-函式和方法Go函式
- 小白學習Golang(六)Go語言函式Golang函式
- GO語言入門 - (六)函式和方法Go函式
- C語言atoi()函式:將字串轉換成int(整數)C語言函式字串
- 空函式有參函式呼叫引數的注意事項Swift 1.1語言函式Swift
- Go語言命令列程式和他們的引數Go命令列
- 將JavaScript 作為第一程式語言JavaScript