常量定义
const x, s = 1, "abc"
func main() {
const a = 1
{
const a = "abc"
println(a)
}
println(a)
}
常量的定义跟变量差不多,我们可以进行类型推断,可以同时定义多个,可以在函数内部定义在包块内定义。
const x int32 = 100
const s uintptr = unsafe.Sizeof(0)
const n int = len("abc")
const (
a int = 1 * int(unsafe.Sizeof("abc"))
b
)
- 如指定常量类型,则左右类型必须一致。
- 必要时,可进行类型转换。
- 支持编译期能计算结果的表达式。
- 在常量组中,如不指定类型和初始化值,则与上行表达式相同。
如果明确的指定类型,左右值必须保持一致。
第二个常量定义的右边不见得是字面量也可以是在编译时候可以计算出结果的表达式。
另外常量组,当你只写一个名字没有提供任何的类型和初始化值它实际上把上面表达式复制下来,这是语法糖比较容易引起误解。