如何检查Golang的地图是否为空?
当出现以下代码时:如何检查Golang的地图是否为空?,go,hashmap,Go,Hashmap,当出现以下代码时: if map == nil { log.Fatal("map is empty") } 运行时,不会执行log语句,而fmt.Println(map)表示映射为空: map[] 您可以使用len: if len(map) == 0 { .... } 从 len(s)映射[K]T映射长度(定义的键数) 下面的示例演示了可用于检查映射是否为空的nil检查和长度检查 package main import ( "fmt" ) func main()
if map == nil {
log.Fatal("map is empty")
}
运行时,不会执行log语句,而fmt.Println(map)
表示映射为空:
map[]
您可以使用
len
:
if len(map) == 0 {
....
}
从
len(s)映射[K]T映射长度(定义的键数)
下面的示例演示了可用于检查映射是否为空的nil检查和长度检查
package main
import (
"fmt"
)
func main() {
a := new(map[int64]string)
if *a == nil {
fmt.Println("empty")
}
fmt.Println(len(*a))
}
印刷品
empty
0
对于那些想知道复杂性的人来说,它是O(1)。这里是。这个问题有很多向上的投票,但我认为这里有一点误解:一个映射可以是
nil
,或者可以初始化并在其中包含0值。这是两种不同的情况<代码>新建(映射[int64]字符串)返回指向映射的未初始化指针。你不能用它来检查地图是否是空的。