常量是指程序在執(zhí)行過程中可能不會(huì)改變的固定值。 這些固定值也稱為文字。
常量可以是任何基本數(shù)據(jù)類型,如整數(shù)常量,浮點(diǎn)常量,字符常量或字符串常量。 還有枚舉常量。
常量一般會(huì)被編譯器視為常規(guī)變量,只是它們的值不能在定義之后被修改。
整數(shù)文字可以是十進(jìn)制,八進(jìn)制或十六進(jìn)制常數(shù)。 前綴指定基數(shù):前綴是0x或0X為十六進(jìn)制,前綴是0的為八進(jìn)制,十進(jìn)制的前綴則無任何內(nèi)容。
整數(shù)文字還可以有一個(gè)后綴,它是U和L的組合,分別用于unsigned和long。后綴可以是大寫或小寫,可以是任意順序。
這里是一些有效的整數(shù)文字的例子:
212 /* 合法 */
215u /* 合法 */
0xFeeL /* 合法 */
078 /* 非法: 8 is not an octal digit */
032UU /* 非法: cannot repeat a suffix */
以下是其他各種類型的整數(shù)文字的示例:
85 /* decimal */
0213 /* octal */
0x4b /* hexadecimal */
30 /* int */
30u /* unsigned int */
30l /* long */
30ul /* unsigned long */
浮點(diǎn)文字有整數(shù)部分,小數(shù)點(diǎn),小數(shù)部分和指數(shù)部分。您可以以十進(jìn)制形式或指數(shù)形式來表示浮點(diǎn)文字。
在使用十進(jìn)制形式表示時(shí),必須包括小數(shù)點(diǎn),指數(shù)或兩者,并且在使用指數(shù)形式表示時(shí),必須包括整數(shù)部分,小數(shù)部分或兩者。帶符號(hào)的指數(shù)由e或E引入。
下面是一些浮點(diǎn)文字的示例:
3.14159 /* 合法 */
314159E-5L /* 合法 */
510E /* 非法: incomplete exponent */
210f /* 非法: no decimal or exponent */
.e55 /* 非法: missing integer or fraction */
Go中有一些字符,當(dāng)它們前面有一個(gè)反斜杠,它們將具有特殊的意義,它們用于表示類似換行符(\n)或制表符(\t)。 這里,有一些這樣的轉(zhuǎn)義序列代碼的列表:
| 轉(zhuǎn)義序列 | 含義 |
|---|---|
\\ |
\字符 |
\' |
'字符 |
\" |
"字符 |
\? |
?字符 |
\a |
警報(bào)或響鈴 |
\b |
退格 |
\f |
換頁 |
\n |
新行 |
\r |
回車 |
\t |
水平制表格 |
\v |
水直制表格 |
\ooo |
八位數(shù)字一到三位數(shù) |
\xhh... |
一位或多位的十六進(jìn)制數(shù) |
以下是顯示幾個(gè)轉(zhuǎn)義序列字符的示例:
package main
import "fmt"
func main() {
fmt.Printf("Hello\tWorld!")
}
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生以下結(jié)果:
Hello World!
字符串文字或常量用雙引號(hào)""括起來。字符串包含與字符文字類似的字符:純字符,轉(zhuǎn)義序列和通用字符??梢允褂米址淖謱㈤L(zhǎng)行拆分為多個(gè)行,并使用空格分隔它們。
這里是一些字符串文字的例子。下面這三種形式都是相同的字符串。
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
可以使用const前綴來聲明具有特定類型的常量,如下所示:
const variable type = value;
下面的例子詳細(xì)解釋:
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)
}
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生以下結(jié)果:
value of area : 50
注:以大寫字母來定義常量是一個(gè)很好的編程習(xí)慣。