多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。 map中的数据都是成对出现的,map的基本使用示例代码如下: ``` <pre class="calibre13">``` func <span class="token3">main</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> scoreMap <span class="token1">:</span><span class="token">=</span> <span class="token3">make</span><span class="token1">(</span>map<span class="token1">[</span>string<span class="token1">]</span>int<span class="token1">,</span> <span class="token5">8</span><span class="token1">)</span> scoreMap<span class="token1">[</span><span class="token4">"张三"</span><span class="token1">]</span> <span class="token">=</span> <span class="token5">90</span> scoreMap<span class="token1">[</span><span class="token4">"小明"</span><span class="token1">]</span> <span class="token">=</span> <span class="token5">100</span> fmt<span class="token1">.</span><span class="token3">Println</span><span class="token1">(</span>scoreMap<span class="token1">)</span> fmt<span class="token1">.</span><span class="token3">Println</span><span class="token1">(</span>scoreMap<span class="token1">[</span><span class="token4">"小明"</span><span class="token1">]</span><span class="token1">)</span> fmt<span class="token1">.</span><span class="token3">Printf</span><span class="token1">(</span><span class="token4">"type of a:%T\n"</span><span class="token1">,</span> scoreMap<span class="token1">)</span> <span class="token1">}</span> ``` ``` 输出: ``` <pre class="calibre13">``` map<span class="token1">[</span>小明<span class="token1">:</span><span class="token5">100</span> 张三<span class="token1">:</span><span class="token5">90</span><span class="token1">]</span> <span class="token5">100</span> type <span class="token2">of</span> a<span class="token1">:</span>map<span class="token1">[</span>string<span class="token1">]</span>int ``` ``` map也支持在声明的时候填充元素,例如: ``` <pre class="calibre13">``` func <span class="token3">main</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> userInfo <span class="token1">:</span><span class="token">=</span> map<span class="token1">[</span>string<span class="token1">]</span>string<span class="token1">{</span> <span class="token4">"username"</span><span class="token1">:</span> <span class="token4">"pprof.cn"</span><span class="token1">,</span> <span class="token4">"password"</span><span class="token1">:</span> <span class="token4">"123456"</span><span class="token1">,</span> <span class="token1">}</span> fmt<span class="token1">.</span><span class="token3">Println</span><span class="token1">(</span>userInfo<span class="token1">)</span> <span class="token6">//</span> <span class="token1">}</span> ``` ``` ### 判断某个键是否存在 Go语言中有个判断map中键是否存在的特殊写法,格式如下: ``` <pre class="calibre13">``` value<span class="token1">,</span> ok <span class="token1">:</span><span class="token">=</span> map<span class="token1">[</span>key<span class="token1">]</span> ``` ``` 举个例子: ``` <pre class="calibre14">``` func <span class="token3">main</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> scoreMap <span class="token1">:</span><span class="token">=</span> <span class="token3">make</span><span class="token1">(</span>map<span class="token1">[</span>string<span class="token1">]</span>int<span class="token1">)</span> scoreMap<span class="token1">[</span><span class="token4">"张三"</span><span class="token1">]</span> <span class="token">=</span> <span class="token5">90</span> scoreMap<span class="token1">[</span><span class="token4">"小明"</span><span class="token1">]</span> <span class="token">=</span> <span class="token5">100</span> <span class="token6">// 如果key存在ok为true,v为对应的值;不存在ok为false,v为值类型的零值</span> v<span class="token1">,</span> ok <span class="token1">:</span><span class="token">=</span> scoreMap<span class="token1">[</span><span class="token4">"张三"</span><span class="token1">]</span> <span class="token2">if</span> ok <span class="token1">{</span> fmt<span class="token1">.</span><span class="token3">Println</span><span class="token1">(</span>v<span class="token1">)</span> <span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span> fmt<span class="token1">.</span><span class="token3">Println</span><span class="token1">(</span><span class="token4">"查无此人"</span><span class="token1">)</span> <span class="token1">}</span> <span class="token1">}</span> ``` ```