地图检索的价值

时间:2017-10-20 20:26:23

标签: go

当您打印具有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
}

1 个答案:

答案 0 :(得分:3)

特例。这同样适用于其他操作:

chan读取:

v, ok := <- somechannel

铸造,例如:

casted, ok := somevar.(sometype)