package main
import "fmt"
/*
* 常量是一个简单值的标识符,在程序运行时,不会被修改的量。
* 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
* 格式:const identifier [type] = value
*
* [type] 可以省略,编译器可以根据变量的值来推断其类型。
* 显式类型定义: const b string = "abc"
* 隐式类型定义: const b = "abc"
*/
// 声明一个常量
const secondMS int = 1000
// 声明多个常量
const a, b = 1, 2
// const 支持设置多类型
const (
ci = 1
cb = false
cStr = "string"
cLen = len(cStr) // len 计算字符串长度
)
const (
cs1 = "a"
cs2 // 字符串常量只会复制上一行结果,不会自增, cs2 = "a"
cs3 = "abc"
cs4
)
/*
* iota,特殊常量,可以认为是一个可以被编译器修改的常量。
* iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),
* const 中每新增一行常量声明将使 iota 自增加一。
*/
const (
c1 = iota // iota 常量默认值0,后续常量将使用自增值
c2 // iota 下一行会自增 1
c3 // 2
c4 // 3
)
const (
cl1 = 1 << iota // iota 占位,默认为0
cl2 = 2 << iota // iota 占位,当前值1
cl3 // 常量自动继承上一行表达式,2 << iota(2)
cl4 // 继续自增 2 << iota(3)
)
func main() {
// c1 = 100 // 常量不允许修改
fmt.Println("const")
fmt.Println("secondMS", secondMS)
fmt.Println("const diff value", ci, cb, cStr, cLen)
fmt.Println("iota int", c1, c2, c3, c4)
fmt.Println("iota bit(op)", cl1, cl2, cl3, cl4)
fmt.Println("string", cs1, cs2, cs3, cs4)
}
Go 学习笔记-常量
最新推荐文章于 2023-05-06 15:21:42 发布