如何检查Golang中的地图是否为空?

030*_*030 47 hashmap go

我试过了

if map == nil {
    log.Fatal("map is empty")
}
Run Code Online (Sandbox Code Playgroud)

但是没有执行日志语句.

fmt.Println(map)以前打印地图,可以看到它是空的:

map[]
Run Code Online (Sandbox Code Playgroud)

如何测试空地图?

jac*_*cob 94

你可以使用len:

if len(map) == 0 {
    ....
}
Run Code Online (Sandbox Code Playgroud)

来自https://golang.org/ref/spec#Length_and_capacity

len(s)map [K] T map length(已定义键的数量)

  • 对于那些对复杂性感到疑惑的人来说,这是O(1).这是[实现](https://github.com/golang/go/blob/5c11480631f5654e9e6937ff08c453660138c64d/src/runtime/map.go#L111). (6认同)