1)常量的定义格式:const identifier [type] = value,例如:const Pi = 3.14159
2)类型说明符 [type]可以省略
3)常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
4)数字型的常量是没有大小和符号的,并且可以使用任何精度而不会导致溢出
反斜杠 \ 可以在常量表达式中作为多行的连接符使用。
const Ln2= 0.693147180559945309417232121458\
176568075500134360255254120680009
const Log2E= 1/Ln2 // this is a precise reciprocal
const Billion = 1e9 // float constant
const hardEight = (1 << 100) >> 97
5)当常量赋值给一个精度过小的数字型变量时,可能会因为无法正确表达常量所代表的数值而导致溢出,这会在编译期间就引发错误
6)常量也允许使用并行赋值的形式:
const beef, two, c = "eat", 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
)
7)常量还可以用作枚举:
const (
Unknown = 0
Female = 1
Male = 2
)
8)iota 可以被用作枚举值
第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2
const (
a = iota
b = iota
c = iota
)
可以简写为
const (
a = iota
b
c
)
9)iota 也可以用在表达式中,如:iota + 50。在每遇到一个新的常量块或单个常量声明时, iota 都会重置为 0( 简单地讲,每遇到一次 const 关键字,iota 就重置为 0 )
10)可以使用某个类型作为枚举常量的类型
type Color int
const (
RED Color = iota // 0
ORANGE // 1
YELLOW // 2
GREEN // ..
BLUE
INDIGO
VIOLET // 6
)