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中文网其他相关文章!