当您打印具有2个返回值的函数的结果时,您将获得
valA valB
从地图中检索可以返回1个值或两个值:
v := m["Answer"]
v, ok := m["Answer"]
但是,当您打印m["Answer"]
时,您始终只会打印v
。究竟什么是地图检索的“功能签名”?或者这只是一个特例?这是一个显示区别的例子:
package main
import "fmt"
func main() {
m := make(map[string]int)
m["Answer"] = 42
v, ok := m["Answer"]
fmt.Println("The value:", v, "Present:", ok)
fmt.Println(banana())
fmt.Println(m["Answer"])
}
func banana() (int, int) {
return 1, 2
}
答案 0 :(得分:3)
特例。这同样适用于其他操作:
从chan
读取:
v, ok := <- somechannel
铸造,例如:
casted, ok := somevar.(sometype)