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

注:以大寫字母來定義常量是一個很好的編程習慣。