Go 常量
常量是程序在执行过程中不能改变的固定值。这些固定值也被称为 字面量 。
常量可以是基本数据类型中的任何一种,比如整数常量、浮点常量、字符常量或字符串字面量。还有枚举常量。
常量与普通变量的处理方式一样,只是在定义之后不能修改其值。
整数字面量
整数字面量可以是十进制、八进制或十六进制常量。前缀指定基数或进制:0x或0X表示十六进制,0表示八进制,没有前缀表示十进制。
整数字面量还可以有后缀,后缀是U和L的组合,分别表示无符号和长整型。后缀可以是大写或小写,并且可以以任意顺序排列。
以下是一些整数字面量的示例:
212 /* Legal */
215u /* Legal */
0xFeeL /* Legal */
078 /* Illegal: 8 is not an octal digit */
032UU /* Illegal: cannot repeat a suffix */
以下是各种类型的整数字面值的其他示例:
85 /* decimal */
0213 /* octal */
0x4b /* hexadecimal */
30 /* int */
30u /* unsigned int */
30l /* long */
30ul /* unsigned long */
浮点数字面值
浮点数字面值包含整数部分、小数点、小数部分和指数部分。你可以使用十进制形式或指数形式来表示浮点数字面值。
使用十进制形式表示时,必须包含小数点、指数或两者都包含;而使用指数形式表示时,必须包含整数部分、小数部分或两者都包含。带符号的指数由e或E引入。
以下是一些浮点数字面值的示例:
3.14159 /* Legal */
314159E-5L /* Legal */
510E /* Illegal: incomplete exponent */
210f /* Illegal: no decimal or exponent */
.e55 /* Illegal: missing integer or fraction */
转义序列
当某些字符前面带有反斜杠时,在Go语言中它们将具有特殊的含义。这些被称为转义序列码用于表示换行符(\n)、制表符(\t)、退格符等。下面是一些转义序列码的列表:
转义序列 | 意义 |
---|---|
\\ |
反斜杠(\) |
\’ | 单引号(’) |
\” | 双引号(”) |
\? | 问号(?) |
\a | 警报或响铃 |
\b | 退格 |
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ooo | 八进制数(一到三位数字) |
\xhh . . . | 十六进制数(一位或多位数字) |
下面的示例展示了如何在程序中使用 \t –
package main
import "fmt"
func main() {
fmt.Printf("Hello\tWorld!")
}
当上面的代码被编译和执行时,它产生以下结果 –
Hello World!
Go中的字符串字面量
字符串字面量或常量用双引号””括起来。字符串包含与字符字面量相似的字符:普通字符、转义序列和通用字符。
可以使用字符串字面量将一行长代码分成多行,并使用空格分隔它们。
以下是一些字符串字面量的示例。所有这三种形式都是相同的字符串。
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
const关键字
你可以使用 const 前缀来声明具有特定类型的常量,如下所示:
const variable type = value;
以下示例显示如何使用 const 关键字 −
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
注意,将常量定义为大写字母是一个良好的编程实践。