golang 中const是什么
16lz
2021-01-22
const声明为常量提供名称,即在编译时固定的值。常量的值必须是数字,字符串或布尔值。
Go语言中的常量使用关键字 const 定义,用于存储不会改变的数据,常量是在编译时被创建的,即使定义在函数内部也是如此,并且只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。 (推荐学习:go)
由于编译时的限制,定义常量的表达式必须为能被编译器求值的常量表达式。
常量的定义格式和变量的声明语法类似:const name [type] = value,例如:
const pi = 3.14159 // 相当于 math.Pi 的近似值
在Go语言中,你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。
显式类型定义: const b string = "abc"
隐式类型定义: const b = "abc"
常量的值必须是能够在编译时就能够确定的,可以在其赋值表达式中涉及计算过程,但是所有用于计算的值必须在编译期间就能获得。
正确的做法:
const c1 = 2/3
错误的做法:
const c2 = getNumber() // 引发构建错误: getNumber() 用做值
和变量声明一样,可以批量声明多个常量:
const ( e = 2.7182818 pi = 3.1415926)
所有常量的运算都可以在编译期完成,这样不仅可以减少运行时的工作,也方便其他代码的编译优化,当操作数是常量时,一些运行时的错误也可以在编译时被发现,例如整数除零、字符串索引越界、任何导致无效浮点数的操作等。
常量间的所有算术运算、逻辑运算和比较运算的结果也是常量,对常量的类型转换操作或以下函数调用都是返回常量结果:len、cap、real、imag、complex 和 unsafe.Sizeof。
更多相关文章
- golang怎么自定义错误
- Golang如何定义error
- golang如何定义一个二维数组
- go语言中自定义包的方法
- 用go实现路由的链式定义
- go语言定义一个数组的方法有哪些
- 详细介绍使用XML资源文件来定义颜色,样式等
- XML编程中的模式定义XSD示例代码详解
- XML中的DTD文档类型定义详细介绍