对Golang函数的返回值参数进行命名,相当于在函数的内部首先就定义了变量作为返回值,并将其初始化为零值。
package main
import (
"fmt"
)
func main() {
fmt.Println("goooooo")
nums := []int{9, 8, 5, 6, 1, 7, 3}
max_v, min_v, msg := MaxMin(nums)
fmt.Printf("min=%d,max=%d,msg=%s", min_v, max_v, msg)
}
//以下函数的返回值已经命名,相当于在函数的内部首先就定义了2个变量作为返回值,且其初始化为零值。
func MaxMin([]int) (max_val int, min_val int, msg string) {
// max_val = nums[0]
//min_val = nums[0] //若不加这行,函数最后的返回的min_val为0,因为其默认初始化为零值。
for _, v := range nums {
if max_val < v {
max_val = v
}
if min_val > v {
min_val = v
}
}
return max_val, min_val, msg //msg未赋值过,默认为零值,即为空
}
//输出为:
//min=0,max=9,msg=
//此处min=0,因为其作为MaxMin函数的已命名返回值参数,被默认初始化为零值,且其为int型,对应的零值即为0,且在由于nums最小的元素为1,min_val未被改变过值,因此函数返回的min_val为0。
参考:https://blog.csdn.net/weixin_37825371/article/details/103985592