Go 語言匿名函數可無需宣告函數名稱,用於建立一次性使用的函數或更大函數的一部分。其語法為 func() { // 函數體 },可接受參數和回傳結果。實戰案例包括排序切片(透過 sort.Slice 函數和匿名函數按特定屬性排序)和過濾資料(透過 filter 函數和匿名函數過濾奇數)。
Go 語言中的匿名函數
#匿名函數是 Go 語言中無需宣告函數名稱的函數。它們通常用於快速建立一次性使用的函數或作為更大函數的一部分。
語法
func() { // 函数体 }
匿名函數可以接受參數和傳回結果,就像普通函數一樣:
func(x int) int { return x * x }
實戰案例
排序切片
我們可以在sort.Slice
函數中使用匿名函數來根據切片元素的特定屬性進行排序:
package main import ( "fmt" "sort" ) type Person struct { Name string Age int } func main() { people := []Person{ {"John", 25}, {"Mary", 30}, {"Bob", 20}, } // 根据 age 排序 sort.Slice(people, func(i, j int) bool { return people[i].Age < people[j].Age }) fmt.Println(people) }
過濾資料
我們也可以使用匿名函數來過濾資料:
package main import "fmt" func main() { nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} // 过滤奇数 oddNums := filter(nums, func(x int) bool { return x % 2 != 0 }) fmt.Println(oddNums) } func filter(arr []int, f func(int) bool) []int { result := []int{} for _, v := range arr { if f(v) { result = append(result, v) } } return result }
以上是golang函數的匿名函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!