Go定义常量和枚举类型
Go定义常量和枚举类型
1、使用const定义常量
package main
func main() {
const a = 1 //使用const定义常量
const b, c = "b", "c" //使用const定义常量
const filename = "a.txt" //使用const定义常量
}
2、可以定义在包内或者函数体内
package main
import "fmt"
const c = "c" //可以定义在包内,函数体外
func main() {
const a1, a2 = 10, 5 //可以定义在函数内部
const s = "sss" //可以定义在函数内部
fmt.Println(c)
}
3、使用括号定义一组常量
package main
func main() {
const (
a = 1
b = 2
c = "c"
d = 1.5
) //使用括号定义一组常量
}
4、可以指定常量的类型
package main
func main() {
const a int = 1 //可以指定类型
const b int64 = 2 //可以指定类型
const c string = "c" //可以指定类型
const d float32 = 1.5 //可以指定类型
const a1 = 1 //可以不指定类型
const b1 = 2 //可以不指定类型
const c1 = "c" //可以不指定类型
const d1 = 1.5 //可以不指定类型
}
5、常量可以作为各种类型使用
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func add2(a, b float32) float32 {
return a + b
}
func main() {
const a1, a2 = 10, 5
v := add(a1, a2) //可以作为int类型使用
fmt.Println(v)
v2 := add2(a1, a2) //可以作为float32使用
fmt.Println(v2)
}
可以看到a1和a2是常量,可以作为int,也可以作为float32
6、使用iota关键字,定义枚举类型
6.1、自增类型的iota
package main
import "fmt"
func main() {
const (
cpp = iota //0
python //1
java //2
golang //3
)
fmt.Println(cpp, python, java, golang)
}
6.2、也可以不用中间某个值,用-代替就行
package main
import "fmt"
func main() {
const (
cpp = iota //0
python //1
_ //2
golang //3
)
fmt.Println(cpp, python, golang)
}
6.3、可以执行运算
定义b,kb,mb,gb,tb
package main
import "fmt"
func main() {
const (
b = 1 << (10 * iota) //1
kb //1024
mb //1048576
gb //1073741824
tb //1099511627776
)
fmt.Println(b, kb, mb, gb, tb)
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2021-06-11 Python之pynput监听和控制鼠标键盘