1.常量定义
用const关键字修饰常量名并赋值,常量命名不同于java等语言,golang中一般用小写,因为在golang中首字母大写表示public权限
const a = 3
2.常量使用
使用数值常量进行运算时不需要进行强制类型转换,编译器会自动识别
1const a,b = 3,4 2var c int 3c = int (math.Sqrt((a*a+b*b)))
3.枚举类型
golang没有特殊的关键字表示枚举,直接用const声明一组常量即可
1const ( 2 c = 0 3 cpp = 1 4 scala = 2 5 python = 3 6 golang = 4 7 )
4.自增枚举
定义时,让第一个枚举值等于iota,后面的枚举不用赋值,编译器会自动赋值,iota:0开始以1为步进自增
1const ( 2 c = iota 3 cpp 4 scala 5 python 6 golang 7 )
测试代码
1package main 2import ( 3 "fmt" 4 "math" 5) 6/* 7常量定义 8 */ 9func consts() { 10 const ( 11 fileName = "abc.txt" 12 a, b = 3, 4 13 ) 14 var c int 15 c = int(math.Sqrt((a*a + b*b))) //不需要强制类型转换 16 fmt.Println(c, fileName) 17} 18/* 19普通枚举 20 */ 21func enums() { 22 const ( 23 c = 0 24 cpp = 1 25 scala = 2 26 python = 3 27 golang = 4 28 ) 29 fmt.Println(c, cpp, scala, python, golang) 30} 31/* 32自增枚举 33 */ 34func iotaEnums(){ 35 //普通自增 36 const ( 37 c = iota 38 cpp 39 scala 40 _ //占位符 41 golang 42 ) 43 //程序员自增 44 const ( 45 b = 1 << (10*iota) 46 kb 47 mb 48 gb 49 tb 50 pb 51 ) 52 fmt.Println(golang,scala,cpp,c) 53 fmt.Println(b,kb,mb,gb,tb,pb) 54} 55func main() { 56 consts() 57 enums() 58 iotaEnums() 59}