go map

声明和初始化

// 先声明map,默认为nil

var m1 map[string]string

// 再使用make函数创建一个非nil的map,nil map不能赋值

m1 = make(map[string]string)

// 最后给已声明的map赋值

m1["a"] = "aa"

m1["b"] = "bb"


//直接创建

m2 := make(map[string]string)

// 然后赋值

m2["a"] = "aa"

m2["b"] = "bb"

// 初始化 + 赋值一体化

m3 := map[string]string{

"a": "aa",

"b": "bb",

}

// ==========================================

// 查找键值是否存在

if v, ok := m1["a"]; ok {

fmt.Println(v)

} else {

fmt.Println("Key Not Found")

}

// 遍历map

for k, v := range m1 {

fmt.Println(k, v)

}


映射的键

映射的键可以是任何值。这个值的类型可以是内置的类型,也可以是结构类型,只要这个值可以使用==运算符做比较。切片、函数以及包含切片的结构类型这些类型由于具有引用语义,不能作为映射的键,使用这些类型会造成编译错误。

使用映射字面量声明空映射

// 创建一个映射,使用字符串切片作为映射的键

dict := map[[]string]int{}

Compiler Exception:

invalid map key type []string


映射的正确用法

// 创建一个空映射,用来存储颜色以及颜色对应的十六进制代码

colors := map[string]string{}

// 将Red的代码加入到映射

colors["Red"] = "#da1337"

可以通过声明一个未初始化的映射来创建一个值为nil的映射(称为nil映射)。nil映射不能用于存储键值对,否则,会产生一个语言运行时错误,如代码

// 通过声明映射创建一个nil映射

var colors map[string]string

// 将Red的代码加入到映射

colors["Red"] = "#da1337"

Runtime Error:

panic: runtime error: assignment to entry in nil map

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 判断键是否存在的两种方式 1 从映射获取值并判断键是否存在 // 获取键Blue对应的值 colors := ma...
    夜空一起砍猩猩阅读 2,206评论 0 0
  • go map 比较深入的使用方案 参考blog: https://blog.golang.org/go-maps-...
    来福马斯特阅读 60,656评论 1 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 01.{ 换行: Opening Brace Can't Be Placed on a Separate Lin...
    码农不器阅读 7,024评论 0 14
  • 周五的晚上,闲来无事,就看了两部电影。一部是寒战2,其实都已经忘记第一部讲的是什么内容了,但至少情节可以让人看下去...
    kasitravel阅读 3,142评论 1 1

友情链接更多精彩内容