教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang map 初始化 和 使用

golang map 初始化 和 使用

发布时间:2022-01-17   编辑:jiaochengji.com
教程集为您提供golang map 初始化 和 使用等资源,欢迎您收藏本站,我们将为您提供最新的golang map 初始化 和 使用资源

目录

声明与初始化

使用 map


 计算机科学中最有用的数据结构之一就是哈希表。 许多散列表实现存在不同的属性,但通常它们提供快速查找,添加和删除。Go提供了一个内置的map 类型,去实现一个哈希表。

<h3 id="声明与初始化">声明与初始化</h3>

声明 一个 map 类型像这样:

<pre><code class="language-Go">map[keyType]valueType</code></pre>

键(key)的类型可以是任意可比较的类型,值(value)的类型可以是任意类型,甚至是另一个 map 类型

下面的变量 m 是一个字符串键到int值的映射:

<pre><code class="language-Go">var m map[string]int</code></pre>

Map类型是引用类型,像指针或切片一样,所以上面的m值是nil; 它没有指向一个初始化的map。 当读取像上面声明的空map时返回为nil,但试图写入上面这样的空map 时将导致运行错误; 不要这样做。 要先初始化map,请使用内置的make函数:

<pre><code class="language-Go">m = make(map[string]int)</code></pre>

make函数将分配并初始化一个散列 map 数据结构,并返回指向它的指针。该数据结构的细节是运行时的实现细节,并不是由语言本身指定的。 在本文中,我们将重点介绍地图的使用,而不是它们的实现。

<h3 id="使用 map">使用 map</h3>

Go 提供了一种大家熟悉的语法去使用 map. 

以下语句将设置 字符串 为"route"的key 映射 到值为66 的value:

<pre><code class="language-Go">m["route"] = 66</code></pre>

以下语句检索key 为 "route" 的值, 并将它赋值给新的变量 i :

<pre><code class="language-Go">i := m["route"]</code></pre>

以下语句 如果请求的 key 不存在,我们将返回value Type  的空值。例子中情况下,值类型为 int, 因此值为 0:

<pre><code class="language-Go">j := m["root"]</code></pre>

j==0

以下语句 使用内置的 len 函数返回map 的长度(多少个已赋值的 key )

<pre><code class="language-Go">n := len(m)</code></pre>

以下语句 使用内置的delete 函数来删除  map 的一条映射:

<pre><code class="language-Go">delete(m, "route") fmt.Println(len(m)) // 0</code></pre>

当你删除一个不存在的 key 时,它不会做执行任何操作( 不会报错)
以下语句 一个有两个的返回值用来测试 是否 存在该key:

<pre><code class="language-Go">i, ok := m["route"]</code></pre>

在这个语句中,第一个值 i 被分配到 key 为“route”映射的值。如果该 key 不存在,返回值类型的空值. 第二个值 ok 是一个 bool 类型,如果该 key 存在于map中,则为 true, 如果没有,则为false。
以下语句 如果你要在不检索值的情况下,测试一个 key , 可以用 下划线 代替第一个变量:

<pre><code class="language-Go">_, ok := m["route"]</code></pre>

以下语句 遍历一个 map:

<pre><code class="language-Go">for key, value := range m { fmt.Println("key:", key, "value:", value) }</code></pre>

以下语句 使用一些数据初始化数据:

<pre><code class="language-Go">commits := map[string]int{ "rsc": 3711, "r": 2148, "gri": 1908, "adg": 912, }</code></pre>

相同的语法可以用来初始化一个空映射, 它在功能上与使用 make 函数一样:

<pre><code class="language-Go">m = map[string]int{}</code></pre>

 

 

到此这篇关于“golang map 初始化 和 使用”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang中map声明及初始化
Golang从入门到放弃200618--Map(1)Map的初始化和基本操作
golang map笔记
golang 初始化并赋值_golang语言中map的初始化及使用示范
golang:map
golang map 初始化 和 使用
golang map
golang基本数据结构-map
golang中map的声明与初始化
golang map初始化赋值

[关闭]
~ ~