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