专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

二十、Go 语言 - 哈希表(map)

文章永久连接:https://tech.souyunku.com/5316

map 又称哈希表,是一种一种无序的键值对的集合

map 最重要特点是通过 key 来快速检索数据,key 类似于索引,指向数据的值

Go 语言中的 map 也是一种集合,所以我们可以像迭代数组和切片那样迭代它

但在迭代时需要注意:map 是无序的,我们无法决定它的返回顺序,因为 map 是使用 hash 表来实现的

定义 map

1.使用内建函数 make 来定义 map

map_variable := make(map[key_data_type]value_data_type)

2. 使用 map 关键字来定义 map

这种方式声明的 map 默认是 nil

var map_variable map[key_data_type]value_data_type

如果不初始化 map,那么就会创建一个 nil map

nil map 不能用来存放键值对

范例

下面的范例演示了如何定义 map 和如何通过 键(key) 访问 map 中的元素

/**
 * file: main.go
 * author: 搜云库技术团队(tech.souyunku.com)
 * Copyright © 2015-2065 tech.souyunku.com. All rights reserved.
 */

package main

import "fmt"

func main() {
   var countryCapitalmap map[string]string
   /* 创建集合 */
   countryCapitalmap = make(map[string]string)

   /* map 插入 key-value 对,各个国家对应的首都 */
   countryCapitalmap["France"] = "Paris"
   countryCapitalmap["Italy"] = "Rome"
   countryCapitalmap["Japan"] = "Tokyo"
   countryCapitalmap["India"] = "New Delhi"

   /* 使用 key 输出 map 值 */
   for country := range countryCapitalmap {
      fmt.Println("Capital of",country,"is",countryCapitalmap[country])
   }

   /* 查看元素在集合中是否存在 */
   captial, ok := countryCapitalmap["United States"]
   /* 如果 ok 是 true, 则存在,否则不存在 */
   if(ok){
      fmt.Println("Capital of United States is", captial)  
   }else {
      fmt.Println("Capital of United States is not present") 
   }
}

编译运行以上 Go 范例,输出结果如下

Capital of France is Paris
Capital of Italy is Rome
Capital of Japan is Tokyo
Capital of India is New Delhi
Capital of United States is not present

干货推荐

本站推荐:精选优质专栏

附录:GOlang 教程:系列文章

未经允许不得转载:搜云库技术团队 » 二十、Go 语言 - 哈希表(map)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们