匿名函數在 go 中沒有名稱,可作為參數傳遞給其他函數。用法:語法:func([參數列表]) ([返回值列表]) { // 函數體 }可省略參數和返回值。可直接傳遞給其他函數。實戰案例:排序列表時,可通過匿名函數比較元素。
匿名函數的用法
在 Go 語言中,匿名函數是一種特殊類型的函數,它沒有名稱,并且通常用于作為其他函數的參數。它們可以出現在使用函數指針的地方,例如回調函數。
用法
匿名函數的語法如下:
func([參數列表]) ([返回值列表]) {
// 函數體
}
登錄后復制
其中 [參數列表] 和 [返回值列表] 是可選的。省略時,匿名函數沒有參數或返回值。
示例
我們以一個計算兩個數之和的匿名函數為例:
sum := func(a, b int) int {
return a + b
}
登錄后復制
我們還可以將匿名函數直接傳遞給其他函數,如下所示:
otherFunction(func(i int) bool {
return i % 2 == 0
})
登錄后復制
這個匿名的 bool 函數檢查一個整數是否為偶數。
實戰案例
讓我們考慮一個排序字符串列表的示例:
// 比較兩個字符串的函數
compareStrings := func(a, b string) int {
return strings.Compare(a, b)
}
// 使用 sort.Slice 對字符串列表進行排序
strings := []string{"apple", "banana", "cherry"}
sort.Slice(strings, compareStrings)
fmt.Print(strings) // [apple banana cherry]
登錄后復制
在上面的代碼中,我們聲明了一個匿名函數 compareStrings,它用于比較兩個字符串。我們然后將這個函數傳遞給了 sort.Slice 函數,它使用匿名函數對字符串列表進行排序。
匿名函數在 Go 中非常有用,它們可以使代碼更簡潔、更易于閱讀。






