返回值

“裸”返回

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