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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # map **注意map必須初始化才能使用,不然直接panic** ~~~ m1 := make(map[int]string, 1) m1[3] = "2222" m1[1] = "2222" m1[5] = "2222" m1[7] = "2222" m1[8] = "2222" fmt.Println(m1) ~~~ map(映射,字典)是一種內置的數據結構,他是一個無序的key-value對的集合,比如以身份證號作為唯一鍵來標識一個人的信息 map的格式為 ~~~ map[keyType]valueType ~~~ 在一個map里所有的鍵都是唯一的,而且必須是支持==和!=操作符類型的,**切片,函數,以及包含切片的結構類型這些類型由于具有引用語義,不能作為映射的鍵** **key順序是無序的** ~~~ var m1 map[int]string ---不能存儲數據 map[int]string{} ---能存儲數據 make(map[int]string) ---能存儲數據 ~~~ ## 基本操作 ~~~ func main() { var m1 map[int]string fmt.Println("m1 = ", m1) //對于map只有len,沒有cap fmt.Println("len = ", len(m1)) //可以通過make創建 m2 := make(map[int]string) fmt.Println("m2 = ", m2) fmt.Println("len = ", len(m2)) } ~~~ 輸出 ~~~ m1 = map[] len = 0 m2 = map[] len = 0 ~~~ ## 賦值 ~~~ func main() { m1 := map[int]string{1: "mike", 2: "yoyo"} for key, value := range m1{ fmt.Printf("%d ===> %s\n", key, value) } } ~~~ ## 判斷值是否存在 two-value寫法: ~~~ a, ok := m[key] ~~~ 當key存在時,ok是true,否則是false ~~~ func main() { m1 := map[int]string{1: "mike", 2: "yoyo"} value, ok := m1[1] if ok==true { fmt.Println("m1[1] = ", value) } else { fmt.Println("key不存在") } } ~~~ ## 刪除 ~~~ func main() { m1 := map[int]string{1: "mike", 2: "yoyo"} fmt.Println("m = ", m1) //key不存在也沒關系 delete(m1, 1) fmt.Println(m1) } ~~~ ## 函數參數 **引用傳遞** ~~~ func test(m map[int]string) { delete(m, 1) } func main() { m1 := map[int]string{1: "mike", 2: "yoyo"} fmt.Println("m = ", m1) test(m1) fmt.Println("m = ", m1) } ~~~ ## nil 只有僅寫`var m map[key_type]value_type`才能得到nil map 一旦初始化,即`m = make(map[key_type]value_type)`就不是nil map了 nil map是無法通過%T看到,%T看到的都是map\[key\_type\]value\_type,比如map\[string\]int 若往nil map(即未make的map)中插入鍵值對,則會報錯`panic: assignment to entry in nil map` ## key和value可用struct ~~~ type Key struct { a, b string } type Value struct { c, d int } var m map[Key]Value func main() { m = make(map[Key]Value) m[Key{ "A", "B", }] = Value{ 1, 2, } fmt.Println(m[Key{ "A","B", }]) fmt.Println(m) fmt.Printf("%T\n", m) } ~~~ 輸出 ~~~ {1 2} map[{A B}:{1 2}] map[main.Key]main.Value ~~~
                  <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>

                              哎呀哎呀视频在线观看