<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # **Go 映射(maps)** 一個 Go map(映射,下文不做翻譯)就是在其它編程語言中眾所周知的哈希表。map數據結構的主要優勢就是其可以使用任意數據類型作為鍵值,但是對于Go map來說并不是所有的數據類型都能作為鍵值,只有可比較的類型才可以,意思是Go編譯器能夠區分不同的鍵值。或者簡單來說,Go map的鍵值必須支持`==`操作符。顯而易見,使用`bool`類型作為map的鍵值是非常不靈活的。另外,由于不同機器和操作系統的浮點數精度定義不同,使用浮點數作為鍵值可能會出現異常。 >Tip: Go map的底層指向了一個哈希表!Go已經隱藏了哈希表的實現及其復雜性,你將在第五章學習如何使用Go實現一個哈希表。 下面使用`make()`函數以`string`為鍵類型,以`int`作為值類型創建一個空的map: ```go iMap := make(map[string]int) ``` 同樣也可以使用map字面量創建并初始化一個map: ```go anotherMap := map[string]int { "k1": 12, "k2": 13 } ``` 可以使用`anotherMap["k1"]`可以獲得對應的值,使用`delete()`刪除一個鍵值對: ```go delete(anotherMap, "k1") ``` 遍歷map中得元素可使用如下代碼: ```go for key, value := range iMap { fmt.Priintln(key, value) } ``` `usingMaps.go`中的代碼將會更加詳細地展示map的用法。代碼將會分為3部分,第一部分是: ```go package main import ( "fmt" ) func main() { iMap := make(map[string]int) iMap["k1"] = 12 iMap["k2"] = 13 fmt.Println("iMap:", iMap) anotherMap := map[string]int { "k1": 12, "k2": 13, } ``` 第二部分是: ```go fmt.Println("anotherMap:",anotherMap) delete(anotherMap,"k1") delete(anotherMap, "k1") delete(anotherMap, "k1") fmt.Println("anotherMap:",anotherMap) _, ok := iMap["doseItExist"] if ok { fmt.Println("Exist!") } else { fmt.Println("dose NOT exist") } ``` 這里你將學習到如何判斷map中擁有某個鍵值對,這是很重要的知識點,如果不了解的話,你將無法判斷一個map是否擁有你想要的信息。 > 需要注意的是,當你嘗試使用一個并不存在的鍵去獲取值的時候,返回值是0,但是你并不知道到底是某個鍵對應的值是0,還是由于所訪問的鍵不存在而返回的0,這是為什么我們使用`_, ok`. 另外,代碼中多次調用delete()去刪除同一個元素并不會導致異常或者警告。 最后一部分代碼展示了使用`range`關鍵字遍歷map是非常簡潔和方便的: ```go for key, value := range iMap { fmt.Println(key, value) } } ``` 執行`usingMaps.go`將會得到下面的輸出: ```bash $ go run usingMaps.go iMap: map[k1:12 k2:13] anotherMap: map[k1:12 k2:13] anotherMap: map[k2:13] dose NOT exist k1 12 k2 13 ``` >Tip: 你不能也不應該期望鍵值對是按順序打印的,因為遍歷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>

                              哎呀哎呀视频在线观看