1
當您打印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
}
這是當有在LHS兩個變量的特殊任務情況和RHS上的地圖索引。您無法讓地圖索引索引運算符以任何其他方式返回兩個值。 –