【发布时间】:2017-09-18 04:28:00
【问题描述】:
Golang 支持将多个返回值分配给多个左侧变量。例如:
func test() (string, string) {
return "1", "1"
}
a, b := test()
或
a, _ := test()
并且接收变量和返回值的个数必须匹配:
b = test() //wrong
但对于某些内置类型,例如 [] 或
key, exist := map[key]
key := map[key]
我可以像这样从通道中读取值
c <- myChan
c, exist <- myChan
我们如何解释这种不一致?这是核心 go 运行时/语言保留的功能吗?
【问题讨论】:
-
你基本上是在问:为什么 Go 要实现语言规范?
标签: go return-value