<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 4.3 常量 常量使用關鍵字 const 定義,用于存儲不會改變的數據。 存儲在常量中的數據類型只可以是布爾型、數字型(整數型、浮點型和復數)和字符串型。 常量的定義格式:`const identifier [type] = value`,例如: ``` const Pi = 3.14159 ``` 在 Go 語言中,你可以省略類型說明符 `[type]`,因為編譯器可以根據變量的值來推斷其類型。 - 顯式類型定義: `const b string = "abc"` - 隱式類型定義: `const b = "abc"` 一個沒有指定類型的常量被使用時,會根據其使用環境而推斷出它所需要具備的類型。換句話說,未定義類型的常量會在必要時刻根據上下文來獲得相關類型。 ``` var n int f(n + 5) // 無類型的數字型常量 “5” 它的類型在這里變成了 int ``` 常量的值必須是能夠在編譯時就能夠確定的;你可以在其賦值表達式中涉及計算過程,但是所有用于計算的值必須在編譯期間就能獲得。 - 正確的做法:`const c1 = 2/3` - 錯誤的做法:`const c2 = getNumber()` // 引發構建錯誤: `getNumber() used as value` **因為在編譯期間自定義函數均屬于未知,因此無法用于常量的賦值,但內置函數可以使用,如:len()。** 數字型的常量是沒有大小和符號的,并且可以使用任何精度而不會導致溢出: ``` const Ln2= 0.693147180559945309417232121458\ 176568075500134360255254120680009 const Log2E= 1/Ln2 // this is a precise reciprocal const Billion = 1e9 // float constant const hardEight = (1 << 100) >> 97 ``` 根據上面的例子我們可以看到,反斜杠 `\` 可以在常量表達式中作為多行的連接符使用。 與各種類型的數字型變量相比,你無需擔心常量之間的類型轉換問題,因為它們都是非常理想的數字。 不過需要注意的是,當常量賦值給一個精度過小的數字型變量時,可能會因為無法正確表達常量所代表的數值而導致溢出,這會在編譯期間就引發錯誤。另外,常量也允許使用并行賦值的形式: ``` const beef, two, c = “meat”, 2, “veg” const Monday, Tuesday, Wednesday, Thursday, Friday, Saturday = 1, 2, 3, 4, 5, 6 const ( Monday, Tuesday, Wednesday = 1, 2, 3 Thursday, Friday, Saturday = 4, 5, 6 ) ``` 常量還可以用作枚舉: ``` const ( Unknown = 0 Female = 1 Male = 2 ) ``` 現在,數字 0、1 和 2 分別代表未知性別、女性和男性。這些枚舉值可以用于測試某個變量或常量的實際值,比如使用 switch/case 結構 (第 5.3 節). 在這個例子中,`iota` 可以被用作枚舉值: ``` const ( a = iota b = iota c = iota ) ``` 第一個 `iota` 等于 0,每當 `iota` 在新的一行被使用時,它的值都會自動加 1;所以 `a=0, b=1, c=2` 可以簡寫為如下形式: ``` const ( a = iota b c ) ``` ( **譯者注:關于 iota 的使用涉及到非常復雜多樣的情況,這里作者解釋的并不清晰,因為很難對 iota 的用法進行直觀的文字描述。如希望進一步了解,請觀看視頻教程 [《Go編程基礎》](https://github.com/Unknwon/go-fundamental-programming) [第四課:常量與運算符](https://github.com/Unknwon/go-fundamental-programming/blob/master/lectures/lecture4.md)** ) `iota` 也可以用在表達式中,如:`iota + 50`。在每遇到一個新的常量塊或單個常量聲明時, `iota` 都會重置為 0( **簡單地講,每遇到一次 const 關鍵字,iota 就重置為 0** )。 當然,常量之所以為常量就是恒定不變的量,因此我們無法在程序運行過程中修改它的值;如果你在代碼中試圖修改常量的值則會引發編譯錯誤。 引用 `time` 包中的一段代碼作為示例:一周中每天的名稱。 ``` const ( Sunday = iota Monday Tuesday Wednesday Thursday Friday Saturday ) ``` 你也可以使用某個類型作為枚舉常量的類型: ``` type Color int const ( RED Color = iota // 0 ORANGE // 1 YELLOW // 2 GREEN // .. BLUE INDIGO VIOLET // 6 ) ```
                  <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>

                              哎呀哎呀视频在线观看