【发布时间】:2021-09-25 14:46:08
【问题描述】:
这是一个奇怪的情况,我不明白 Go 在做什么。我以一些代码结束,这些代码使用了尚未插入该键的 map 的默认值。
package main
import (
"fmt"
"reflect"
)
func main() {
mmm := map[string][]string{}
nnn := map[string][]string {
"a": {},
}
x := mmm["a"]
y := nnn["a"]
z := []string{}
fmt.Println(reflect.DeepEqual(x,y))
fmt.Println(reflect.DeepEqual(x,z))
fmt.Println(reflect.DeepEqual(y,z))
fmt.Printf("%T, %T, %T", x, y, z)
}
我得到了意想不到的输出
false
false
true
[]string, []string, []string
我期望true 全面。这样做的地图的默认值是什么?
【问题讨论】:
标签: dictionary go slice