Go語言常數


常數是指程式在執行過程中可能不會改變的固定值。 這些固定值也稱為文字。

常數可以是任何基本資料型別,如整數常數,浮點常數,字元常數或字串常數。 還有列舉常數。

常數一般會被編譯器視為常規變數,只是它們的值不能在定義之後被修改。

整數文字

整數文字可以是十進位制,八進位制或十六進位制常數。 字首指定基數:字首是0x0X為十六進位制,字首是0的為八進位制,十進位制的字首則無任何內容。

整數文字還可以有一個字尾,它是UL的組合,分別用於unsignedlong。字尾可以是大寫或小寫,可以是任意順序。

這裡是一些有效的整數文字的例子:

212         /* 合法 */
215u        /* 合法 */
0xFeeL      /* 合法 */
078         /* 非法: 8 is not an octal digit */
032UU       /* 非法: cannot repeat a suffix */

以下是其他各種型別的整數文字的範例:

85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

浮點文字

浮點文字有整數部分,小數點,小數部分和指數部分。您可以以十進位制形式或指數形式來表示浮點文字。
在使用十進位制形式表示時,必須包括小數點,指數或兩者,並且在使用指數形式表示時,必須包括整數部分,小數部分或兩者。帶符號的指數由eE引入。

下面是一些浮點文字的範例:

3.14159       /* 合法 */
314159E-5L    /* 合法 */
510E          /* 非法: incomplete exponent */
210f          /* 非法: no decimal or exponent */
.e55          /* 非法: missing integer or fraction */

跳脫序列

Go中有一些字元,當它們前面有一個反斜槓,它們將具有特殊的意義,它們用於表示類似換行符(\n)或製表符(\t)。 這裡,有一些這樣的跳脫序列程式碼的列表:

跳脫序列 含義
\\ \字元
\' '字元
\" "字元
\? ?字元
\a 警報或響鈴
\b 退格
\f 換頁
\n 新行
\r 回車
\t 水平製表格
\v 水直製表格
\ooo 八位數位一到三位數
\xhh... 一位或多位的十六進位制數

以下是顯示幾個跳脫序列字元的範例:

package main

import "fmt"

func main() {
   fmt.Printf("Hello\tWorld!")
}

當上述程式碼被編譯和執行時,它產生以下結果:

Hello   World!

字串文字

字串文字或常數用雙引號""括起來。字串包含與字元文字類似的字元:純字元,跳脫序列和通用字元。可以使用字串文字將長行拆分為多個行,並使用空格分隔它們。

這裡是一些字串文字的例子。下面這三種形式都是相同的字串。

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

const關鍵字

可以使用const字首來宣告具有特定型別的常數,如下所示:

const variable type = value;

下面的例子詳細解釋:

package main

import "fmt"

func main() {
   const LENGTH int = 10
   const WIDTH int = 5   
   var area int

   area = LENGTH * WIDTH
   fmt.Printf("value of area : %d", area)   
}

當上述程式碼被編譯和執行時,它產生以下結果:

value of area : 50

註:以大寫字母來定義常數是一個很好的程式設計習慣。