如何区分空字符串和映射中的空值?

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

How to differentiate empty string and nothing in a map

问题

以下代码返回true。所以我想知道在Golang中的map[string]string中,是否有办法区分空字符串和不存在的键?

package main

import "fmt"

func main() {
    m := make(map[string]string)
    m["abc"] = ""
    fmt.Println(m["a"] == m["abc"]) //true
}
英文:

The following code yields true. So I'm wondering for map[string]string in Golang, is there a way to differentiate empty string and nothing?

package main

import "fmt"

func main() {
	m := make(map[string]string)
	m["abc"] = ""
	fmt.Println(m["a"] == m["abc"]) //true
}

答案1

得分: 9

如果你说的“nothing”是指元素不在映射中,你可以使用 ok 惯用法:

val, ok := myMap["value"] // 如果 value 在映射中,ok 为 true

你可以在 Effective Go 中找到更多信息。

英文:

If by "nothing" you mean that the element is not in the map you can use the ok idiom:

val, ok := myMap["value"] // ok is true if value was in the map

You can find more information in Effective Go.

huangapple
  • 本文由 发表于 2015年7月4日 05:54:22
  • 转载请务必保留本文链接:https://go.coder-hub.com/31214598.html
匿名

发表评论

匿名网友

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

确定