常量
- 常量是一个简单值的标识符,在程序运行时,不会被修改的量。
- 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
- 常量使用 const 关键字定义数据
- 常量在定义的时候,必须初始化且常量不能修改
- 语法:const identifier [type] = value
- 举例说明,看看下面的写法是否正确:
const name = "tom" // ok
const tax float64 = 0.8 // ok
const a int // error
const b = 9 / 3 // ok
const c = getVal() // err
- 可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。
- 显式类型定义: const b string = “abc”
- 隐式类型定义: const b = “abc”
- 多个类型的声明可以简写为:
// 多个相同类型的常量声明
const c_name1, c_name2 = value1, value2
// 多个不同类型的常量声明
const (
a = "abc"
b = len(a)
c = unsafe.Sizeof(a)
)
实例:下面我们使用const 关键字来定义常量
package main
import "fmt"
import "math"
// "const" 关键字用来定义常量
const s string = "appropriate"
func main() {
fmt.Println(s)
// "const"关键字可以出现在任何"var"关键字出现的地方
// 区别是常量必须有初始值
const n = 20
// 常量表达式可以执行任意精度数学计算
const d = 3e20 / n
fmt.Println(d)
// 数值型常量没有具体类型,除非指定一个类型
// 比如显式类型转换
fmt.Println(int64(d))
// 数值型常量可以在程序的逻辑上下文中获取类型
// 比如变量赋值或者函数调用。
// 例如,对于math包中的Sin函数,它需要一个float64类型的变量
fmt.Println(math.Sin(n))
}
输出的结果为:
appropriate
6e+11
600000000000
-0.28470407323754404