How to check if a map is empty in Golang?

huangapple go评论82阅读模式
英文:

How to check if a map is empty in Golang?

问题

当运行以下代码时:

m := make(map[string]string)
if m == nil {
    log.Fatal("map is empty")
}

日志语句不会被执行,而fmt.Println(m)表明该映射为空:

map[]
英文:

When the following code:

m := make(map[string]string)
if m == nil {
	log.Fatal("map is empty")
}

is run, the log statement is not executed, while fmt.Println(m) indicates that the map is empty:

map[]

答案1

得分: 205

你可以使用 len 函数:

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

来源:https://golang.org/ref/spec#Length_and_capacity
> len(s) map[K]T map 的长度(定义的键的数量)

英文:

You can use len:

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

From https://golang.org/ref/spec#Length_and_capacity
> len(s) map[K]T map length (number of defined keys)

答案2

得分: 2

以下示例演示了用于检查地图是否为空的nil检查和长度检查。

package main

import (
	"fmt"
)

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

输出结果为:

empty
0
英文:

The following example demonstrates both the nil check and the length check that can be used for checking if a map is empty

package main

import (
	"fmt"
)

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

Prints

empty
0

huangapple
  • 本文由 发表于 2016年1月26日 08:51:18
  • 转载请务必保留本文链接:https://go.coder-hub.com/35005261.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定