<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # Map Go語言中提供的映射關系容器為`map`,其內部使用`散列表(hash)`實現,所以它是一種`無序`的基于`key-value`的數據結構,同時也是一種引用類型,必須初始化才能使用。 ## map定義 ~~~ map[KeyType]ValueType ~~~ * KeyType:表示鍵的類型。 * ValueType:表示鍵對應的值的類型。 map類型的變量默認初始值為`nil`,需要使用make()函數來分配內存。語法為: ~~~ make(map[KeyType]ValueType, [cap]) ~~~ 其中`cap`表示map的容量,該參數雖然不是必須的,但是我們應該在初始化map的時候就為其指定一個合適的容量。 ## map基本使用 map中的數據都是成對出現的 ~~~go func main() { scoreMap := make(map[string]int, 8) scoreMap["大雄"] = 90 scoreMap["胖虎"] = 100 fmt.Println(scoreMap) fmt.Println(scoreMap["大雄"]) fmt.Printf("type of a:%T\n", scoreMap) } ~~~ output: ~~~bash map[大雄:90?胖虎:100] 90 type?of?a:map[string]int ~~~ map也支持在聲明的時候填充元素 eg: ~~~ userInfo := map[string]int{ "roomNum": 2021, "age": 18, } fmt.Println(userInfo) // ~~~ ## 判斷某個鍵是否存在 格式:`value, ok := map[key]` ~~~ func main() { scoreMap := make(map[string]int) scoreMap["大雄"] = 99 scoreMap["小叮當"] = 18 // 如果key存在ok為true,v為對應的值;不存在ok為false,v為值類型的零值 v, ok := scoreMap["大雄"] if ok { fmt.Println(v) } else { fmt.Println("小心胖虎揍你!") } } ~~~ ## map的遍歷 `for range`遍歷map。 ~~~go func main() { scoreMap := make(map[string]int) scoreMap["大雄"] = 99 scoreMap["小叮當"] = 18 scoreMap["靜香"] = 98 for k, v := range scoreMap { fmt.Println(k, v) } } ~~~ 只想遍歷key的時候 ~~~go func main() { scoreMap := make(map[string]int) scoreMap["大雄"] = 99 scoreMap["小叮當"] = 18 scoreMap["靜香"] = 98 for k := range scoreMap { fmt.Println(k) } } ~~~ **注意:**遍歷map時的元素順序與添加鍵值對的順序無關。 ## 使用delete()函數刪除鍵值對 格式:`delete(map,key)` ~~~ func main(){ scoreMap := make(map[string]int) scoreMap["大雄"] = 99 scoreMap["小叮當"] = 18 scoreMap["靜香"] = 98 //因為大雄和小叮當是真愛,那就刪除靜香吧 delete(scoreMap, "靜香") for k := range scoreMap { fmt.Println(k) } } ~~~ output: ~~~ 大雄 小叮當 ~~~ ## 按照指定順序遍歷map ~~~ func main() { rand.Seed(time.Now().UnixNano()) //初始化隨機數種子 var scoreMap = make(map[string]int, 200) for i := 0; i < 100; i++ { key := fmt.Sprintf("stu%02d", i) //生成stu開頭的字符串 value := rand.Intn(100) //生成0~99的隨機整數 scoreMap[key] = value } //取出map中的所有key存入切片keys var keys = make([]string, 0, 200) for key := range scoreMap { keys = append(keys, key) } //對切片進行排序 sort.Strings(keys) //按照排序后的key遍歷map for _, key := range keys { fmt.Println(key, scoreMap[key]) } } ~~~ ## 元素為map類型的切片 ~~~ func main() { var mapSlice = make([]map[string]string, 3) for index, value := range mapSlice { fmt.Printf("index:%d value:%v\n", index, value) } fmt.Println("after init") // 對切片中的map元素進行初始化 mapSlice[0] = make(map[string]string, 10) mapSlice[0]["name"] = "小叮當" mapSlice[0]["age"] = "18" mapSlice[0]["address"] = "北京" for index, value := range mapSlice { fmt.Printf("index:%d value:%v\n", index, value) } } ~~~ ## 值為切片類型的map ~~~ func main() { var sliceMap = make(map[string][]string, 3) key := "哆啦A夢" value, ok := sliceMap[key] if !ok { value = make([]string, 0, 2) } value = append(value, "大雄", "小叮當") sliceMap[key] = value fmt.Println(sliceMap)//map[哆啦A夢:[大雄?小叮當]] } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看