【发布时间】:2021-09-28 12:36:18
【问题描述】:
为什么下面的代码没有发出警告?
$ cat ret.go
package main
import "fmt"
func foobar(x int, y int) (z, w int) {
if x+y > 100 {
_,w = 3,5
} else {
_,w = "MMM",9
}
return z,w
}
func main() {
var x int
_,x = foobar(42,13)
fmt.Println(x)
}
$ go build -gcflags=-l ret.go
至少,go 编译器应该知道z 的大小吧?
【问题讨论】:
-
z被初始化为默认值0。你可以在这里找到更多关于默认值的信息tour.golang.org/basics/12
标签: go types return-value auto