1. 程式人生 > 實用技巧 >Go語言學習之匿名函式

Go語言學習之匿名函式

函式可以分為:匿名函式和普通函式

匿名函式的使用:

匿名函式就是沒有名字的函式,它只有函式邏輯體,而沒有函式名

定義的格式如下

func(引數列表)(返回引數列表){
    函式體
}

一個名字實際上沒多大區別,所有使用匿名函式都可以改成普通函式,那麼什麼情況下會使用匿名函式呢

定義變數名,是一個不難,但是費腦子的事情,對於那種只使用一次的函式,是沒必要擁有名字的,所以才有了匿名函式

匿名函式只有短暫的生命,一般都是定義後立即使用

就像這樣定義後,立馬執行

//把100當作引數傳進去
func(data int) {
    fmt.Println(data)
}(100)
-------------------------結果------------
100

或者作為回撥函式使用:

// 第二個引數為函式
func visit(list []int, f func(int)) {
    for _, v := range list {
        // 執行回撥函式
        f(v)
    }
}
func main() {
    // 使用匿名函式直接做為引數
    visit([]int{1, 2, 3, 4}, func(v int) {
        fmt.Println(v)
    })
}