教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Go语言小知识之map遍历

Go语言小知识之map遍历

发布时间:2022-03-20   编辑:jiaochengji.com
教程集为您提供Go语言小知识之map遍历等资源,欢迎您收藏本站,我们将为您提供最新的Go语言小知识之map遍历资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg><h3 id="1-遍历顺序">1 遍历顺序</h3>

Go语言里的map,是不保证遍历顺序的(这一点很好理解)。甚至同样内容的map,两次遍历的顺序,也可能不一样。下面是一个例子:

<pre class="prettyprint"><code class="language-golang hljs ">m := <span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>{<span class="hljs-string">"a1"</span>:<span class="hljs-number"> 1</span>,<span class="hljs-string">"b2"</span>:<span class="hljs-number"> 10</span>,<span class="hljs-string">"c3"</span>:<span class="hljs-number"> 2</span>,} <span class="hljs-keyword">for</span> k, v := <span class="hljs-keyword">range</span> m {fmt.Printf(<span class="hljs-string">"%s=%d;"</span>, k, v)} <span class="hljs-comment">// c3=2;a1=1;b2=10;</span> <span class="hljs-built_in">println</span>() <span class="hljs-keyword">for</span> k, v := <span class="hljs-keyword">range</span> m {fmt.Printf(<span class="hljs-string">"%s=%d;"</span>, k, v)} <span class="hljs-comment">// a1=1;b2=10;c3=2;</span></code></pre> <h3 id="2-遍历时进行操作">2 遍历时进行操作</h3>

遍历map的时候,可以对map进行操作(增、删、改)。如果遍历的过程中,删除了某个已经遍历过的entry,不会有任何问题。如果删除了某个还未被遍历到的entry,那么这个entry就不会被遍历到了。如果遍历过程中添加了新的entry,这个entry则不一定能在后续被遍历到。

<h3 id="3-参考资料">3 参考资料</h3>

http://stackoverflow.com/questions/23229975/is-it-safe-to-remove-selected-keys-from-golang-map-within-a-range-loop

到此这篇关于“Go语言小知识之map遍历”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Go语言小知识之map遍历
golang map 排序 key value
Go语言发展历史、核心、特性及学习路线
Go 语言学习之流程控制
想系统学习GO语言(Golang
Golang从入门到放弃200618--Map(1)Map的初始化和基本操作
go语言类型断言
深度解密Go语言之 map
golang key map 所有_Golang面试知识点总结
【golang】map原理

[关闭]
~ ~