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

时间:2016-01-26 00:51:18

标签: go hashmap

我已经尝试了

if map == nil {
    log.Fatal("map is empty")
}

但是没有执行日志语句。

我使用fmt.Println(map)打印地图,人们可以看到它是空的:

map[]

如何测试空地图?

2 个答案:

答案 0 :(得分:78)

您可以使用len

if len(map) == 0 {
    ....
}

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

  

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

答案 1 :(得分:0)

下面的示例演示了nil检查和长度检查,可用于检查映射是否为空

package main

import (
    "fmt"
)

func main() {
    a := new(map[int64]string)
    if *a == nil {
        fmt.Println("empty")
    }
    fmt.Println(len(*a))
}

打印

empty
0