<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                > ### 例子一 ~~~ package main import ( "fmt" ) //map的key必須是支持==或!=比較運算的類型,不可以是函數,map或slice //map的value 則沒有任何的限制 //make 根據size 大小來初始化分配內存,不過分配后的 map 長度為0。 如果 size 被忽略了,那么會在初始化分配內存的時候 分配一個小尺寸的內存 //map的迭代順序是隨機的 func main() { //map 在使用之前必須用 make 而不是 new 來創建;值為 nil 的 map 是空的,并且不能賦值 var number1 map[int]string number2 := make(map[int]string, 5) number3 := map[string]int{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5} fmt.Printf("Number1: %v, len:%d \r\n", number1, len(number1)) fmt.Printf("Number2: %v, len:%d \r\n", number2, len(number2)) fmt.Printf("Number3-1: %v, len:%d \r\n", number3, len(number3)) delete(number3, "c") fmt.Printf("Number3-2: %v, len:%d \r\n", number3, len(number3)) number3["f"] = 6 fmt.Printf("Number3-3: %v, len:%d \r\n", number3, len(number3)) //引用類型 var number4 = map[string]int{"a": 1, "b": 2, "c": 3, "d": 4, "e": 4} fmt.Println("Number4-1:", number4) number5 := number4 number5["e"] = 5 fmt.Println("Number4-2:", number4) } ~~~ > ### 例子二(無序輸出和有序輸出) ~~~ package main import ( "fmt" "math/rand" "sort" "time" ) func main() { r := rand.New(rand.NewSource(time.Now().UnixNano())) var number6 map[int][]int number6 = make(map[int][]int, 5) for i := 0; i < 5; i++ { _, ok := number6[i] if !ok { number6[i] = make([]int, 0, 3) } number6[i] = append(number6[i], r.Intn(100), r.Intn(100), r.Intn(100)) } fmt.Println("無序輸出") for k, v := range number6 { fmt.Printf("k: %d, v: %d \r\n", k, v) } fmt.Println("有序輸出") var number7 []int for k, _ := range number6 { number7 = append(number7, k) } sort.Ints(number7) for _, v := range number7 { fmt.Printf("k: %d, v: %d \r\n", v, number6[v]) } } ~~~ > ### 例子三 ~~~ package main import "fmt" func main() { var m map[string]int if _, ok := m["first"]; !ok { m = make(map[string]int, 5) } m["first"] = 11111 fmt.Println(m) } ~~~ > ### delete ~~~ package main import "fmt" func main() { //刪除對應的鍵值對,如果集合為空或找不到對應的鍵,則無操作 number := map[string]int{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5} fmt.Println(number) delete(number, "b") fmt.Println(number) delete(number, "f") fmt.Println(number) } ~~~ > ### 為什么map會提示并發寫和讀的錯誤,?變量又不會???? * 在標準庫的源代碼里能看到,map?內部進行了保護,如果發現了并發訪問就會報?fatal?error(不是?panic,所以無法?recover)。普通的變量類型沒有這個機制。 > ### 相關閱讀 * [golang map源碼詳解](https://blog.yiz96.com/golang-map/)
                  <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>

                              哎呀哎呀视频在线观看