实践出真理
package main
import (
"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: 100
main.go:43: true 101
main.go:21: vBool= true
main.go:22: vInt= 103
main.go:24: 打印形参默认值
main.go:25: r1= false
main.go:26: r2= 0
main.go:47: 103