概述
Go语言中可是省略类型说明符 常量声明可以包含类型和值,若没有显式指定类型,将从右边表达式推断类型。 常量的值必须能在编译时被确定 常量的运算在编译器完成不仅减少了运行时的工作量,也方便其他代码的编译优化。当操作数是常量时,某些运行时错误可以在编译时被发现,比如整数除零、字符串索引越界、无效浮点数操作等。 批量声明常量时除了第一个外其它的常量右边的初始化表达式都可以被省略,省略初始化表达式的常量会使用前面常量的初始化表达式的值。 常量之间的算术运算、逻辑运算、比较运算结果也是常量,对常量的类型转换操作结果也是常量。 可用于返回常量结果的函数: 常量的值是在编译器就确定的,因此常量可以构成类型的一部分。 例如:使用常量指定数组类型的长度 常量生成器的作用也就是枚举类型 例如:定义一周每天的常量 Go语言常量与众不同之处在于,虽然一个常量可以有任意一个确定的基础类型,但许多常量并没有一个明确的基础类型。 例如:使用 若 编译器为没有明确基础类型的数字产量提供比基础类型更高精度的算术运算,至少有256bit的运算精度。 未明确类型的常量可分为无类型的布尔型、无类型的整数、无类型的字符、无类型的字符串、无类型的浮点数、无类型的复数 通过延迟明确常量的具体类型,不仅可以提高运算精度,还可以直接用于更多地表达式而无需显式的类型转换。const
声明常量定义
const name [type] = value
type
,编译器可以根据值来推导其类型。const pi float32 = 3.14159
const pi = 3.14159
const num = getNumber() //引发构建错误
批量声明
const (
pi = 3.14152
e = 2.7182818
)
const (
pi = 3.14159
pi2
)
常量运算
len
、cap
、real
、imag
、complex
、unsafe.Sizeof
const IPv4Len = 4
func parseIPv4(str string) IP{
var p [IPv4Len]byte
}
常量生成器
type Weekday int
const (
Sunday Weekday = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
iota
常量生成器进行初始化iota
用于生成一组以相似规则初始化的常量,但不用每行都写一遍初始化表达式。iota
将会被置为0,然后在每个常量声明的行自增1。无类型常量
math.Pi
无类型的浮点数常量,可直接用于任意需要浮点数或复数的地方。var x float32 = math.Pi
var y float64 = math.Pi
var z complex128 = math.Pi
math.Pi
被确定为特定类型,那么在计算中精度可能不太一样。
最后
以上就是怕孤独酒窝为你收集整理的Go Constant的全部内容,希望文章能够帮你解决Go Constant所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复