1.有以下几种 constants :
rune , integer , floating-point , complex , string 。
其中, rune , integer , floating-point , complex constants 被称作 numeric constants 。
2.constant value 由下列情况给出:
- 【 rune , integer , floating-point , imaginary , string 】 literal
- 可以表示 constant 的 标识符
- constant expression
- 结果是 constant 的 conversion
- 一些 built-in 函数的返回值
- true 和 false
- iota
3.布尔值的真假是由预编译的两个常量来表示, true 和 false 。
4.预编译的标识符 iota 表示一个 integer 常量。
5.Numeric constants 可以表示任意精度的数,并且不会溢出。
6.Constants 可以是 typed 或者 untyped 。
- untyped constants 包括:【literal constants , true , false , iota , 以及仅仅包含 untyped constant 的操作数的 constant expression 】
- 一个 untyped constant 被搁置在一个有具体 type 的 上下文里,绝对会被赋予一种 type ,仅在此时这个 untyped constant 会变成 typed constant 。
- 可以通过 constant declaration 或者 conversion 来显示赋予常量某种 type 。
- 变量声明、赋值或者做为表达式中的操作数时, constant 可能被隐式赋予某种 type 。
- 一个 untyped constant 有一个 default type , 在隐式赋予 type 的时候, 会优先考虑 default type 。(1.0既可以是int,也可以是float64)
7.不同类型的 constant 所对应的 default type 如下:
- boolean , bool
- rune , rune
- integer , int
- floating-point , float64
- complex , complex128
- string , string
有疑问加站长微信联系(非本文作者)