实践出真理
package mainimport ( "io" "log" "os")// 多个参数, 一个返回值 int 类型的函数func func1(vString string, vInt int) int { return vInt}// 多个参数, 多个返回值 匿名返回值func func2(vBool bool, vInt int) (bool, int) { return vBool, vInt}// 多个参数, 多个返回值,有形参名称返回值func func3(vBool bool, vInt int) (r1 bool, r2 int) { log.Println("vBool=", vBool) log.Println("vInt=", vInt) log.Println("打印形参默认值") log.Println("r1=", r1) // false log.Println("r2=", r2) // 0 r1 = vBool r2 = vInt return}// 多个参数, 多个返回值,有形参名称返回值, 如果变量类型一致, 可以简写// 在这里可以注意到, 这个方法名也可以 匿名, 匿名意味着这个方法定义只是为了保留某些旧函数, 不会被使用func _(vBool bool, vInt int) (r1, r2 int) { return}func main() { log.SetOutput(io.MultiWriter(os.Stdout)) log.SetFlags(log.Lshortfile) r1 := func1("vSrting", 100) log.Println(r1) // 接受两个返回值 r2, r3 := func2(true, 101) log.Println(r2, r3) // 丢弃一个返回值, 使用匿名变量 _ _, r4 := func3(true, 103) log.Println(r4)}
返回
main.go:39: 100main.go:43: true 101main.go:21: vBool= truemain.go:22: vInt= 103main.go:24: 打印形参默认值main.go:25: r1= falsemain.go:26: r2= 0main.go:47: 103