返回值
“裸”返回
package main
import (
"fmt"
)
func add(a, b int) (c int) {
c = a + b
return
}
func calc(a, b int) (sum int, avg int) {
sum = a + b
avg = (a + b) / 2
return
}
func main() {
var a, b int = 1, 2
c := add(a, b)
sum, avg := calc(a, b)
fmt.Println(a, b, c, sum, avg)
e := 3.0
f := 2.0
fmt.Printf("e -> %#v | %T \n", e, e)
g := e / f
fmt.Printf("g -> %#v | %T | %v | %.2f\n", g, g, g, g)
}
多返回值
多返回值可直接作为其他函数调用实参
命名返回参数
命名返回参数可被同名局部变量遮蔽,此时需要显式返回。
命名返回参数允许 defer 延迟调用通过闭包读取和修改。
显式 return 返回前,会先修改命名返回参数。
Last updated