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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                Go語言在聲明變量時,自動會對變量對應的內存區域進行初始化操作。每個變量會初始化其類型的默認值,例如: * 整型和浮點型變量的默認值為`0`和`0.0`; * 字符串變量的默認值為`空字符串`; * 布爾型變量的默認值為`false`; * 切片、函數、指針變量的默認值為`nil`。 當然,依然可以在變量聲明時賦予變量一個初始值。 ## 1. 變量初始化的標準格式 var 變量名 類型 = 表達式 ``` var hp int = 100 ``` `hp`為`變量名`,類型為`int`,`hp`的初始值為`100` 上面的代碼,`100`和`int`同為`int`類型,`int`可以認為是冗余的,因此可以進一步簡化初始化的寫法。 ## 2. 編譯器推導類型的格式 在標準格式的基礎上,將`int`省略后,編譯器會嘗試根據等號右邊的表達式推導`hp`變量的類型。 ``` var hp = 100 ``` 等號右邊的部分在編譯原理里被稱做右值(rvalue)。 以下是編譯器根據右值推導變量類型完成初始化的例子。 ``` var attack = 40 var defence = 20 var damageRate = 0.17 var damage = float32(attack - defence) * damageRate fmt.Println(damage) // 3.4 ``` ## 3. 短變量聲明并初始化 var的變量聲明還有一種更為精簡的寫法: ``` hp := 100 ``` 這是Go語言的推導聲明寫法,編譯器會自動根據右值類型推斷出左值的對應類型。 **注意:由于使用了`:=`,而不是賦值的`=`,因此推導聲明寫法的左值變量必須是沒有定義過的變量。若定義過,將會發生編譯錯誤。** 若`hp`已經被聲明,但依然使用`:=`時,編譯器會報錯: ``` // 聲明hp變量 var hp int // 再次聲明并賦值 hp := 100 ``` 編譯報錯如下: ``` no new variables on left side of := ``` 意思是:在`:=`的左邊沒有新變量出現,意思就是`:=`的左邊變量已經被聲明了。 短變量聲明的形式在開發中的例子較多: ``` conn, err := net.Dial("tcp", "128.0.0.1:8080") ``` 若是標準格式將會變成 ``` var conn net.Conn var err error conn, err = net.Dial("tcp", "127.0.0.1:8080") ``` **注意:在多個短變量聲明和賦值中,至少有一個新聲明的變量出現在左值中,即便其他變量名可能是重復的,編譯器也不會報錯。如下:** ``` conn, err := net.Dial("tcp", "127.0.0.1:8080") conn2, err := net.Dial("tcp", "127.0.0.1:8080") ```
                  <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>

                              哎呀哎呀视频在线观看