go 匿名函数可通过返回语句返回结果,语法:func(参数列表) (返回类型列表) { 函数体 return 返回值 }。实战中,可通过匿名函数实现获取数组最大值:max := func(nums []int) int { ... return max }。匿名函数需显式声明返回类型,若返回多个值可用元组,且不能直接访问外部变量,除非使用闭包。
从 Golang 匿名函数返回结果
Golang 中的匿名函数,又称 lambda 函数,可以通过返回语句将结果传递给调用方。
语法:
立即学习“go语言免费学习笔记(深入)”;
func(参数列表) (返回类型列表) {
// 函数体
return 返回值
}
实战案例:
假设我们想创建一个匿名函数,它将一个整数列表作为参数,并返回列表中最大值。
// 获取列表中最大值
max := func(nums []int) int {
if len(nums) == 0 {
return 0
}
max := nums[0]
for _, num := range nums {
if num > max {
max = num
}
}
return max
}
以上匿名函数接受一个整数列表,并在列表为空的情况下返回 0,否则返回列表中的最大值。
使用匿名函数:
我们可以将匿名函数作为参数传递给另一个函数,或直接调用它。
// 使用匿名函数
nums := []int{1, 2, 3, 4, 5}
maxNum := max(nums) // 调用匿名函数
fmt.Println(maxNum) // 输出:5
在上面的示例中,我们调用匿名函数 max 并将它的返回值存储在 maxNum 变量中。
注意事项:
- 匿名函数的返回类型必须显式声明。
- 如果匿名函数需要返回多个值,则必须使用元组(type1, type2, ...)。
- 匿名函数不能访问外部函数的变量,除非它们使用闭包。