关于golang中的const常量和iota

关于golang中的const常量和iota

golang中通过var定义变量,通过const定义常量。常量只能是基本的简单值类型,常量一经定义其值不可修改(类比Java中的final)。

const (
	MaxInt = int(^uint(0) >> 1)
	MinInt = -MaxInt - 1
)
const PI = 3.14
PI = 3.14159//编译错误,Cannot assign to PI

iota是一个特殊常量,可以认为是一个可以被编译器修改的常量。
iota 在const关键字出现时将被重置为0,const中每新增一行常量声明将使 iota 计数加1,因此iota可作为const 语句块中的行索引。

const (
	a   = 1                  //1 (iota=0)
	b                        //1 (iota=1,同上一行,相当于写b=1)
	c   = b + iota           //3 (iota=2,b=1)
	d                        //4 (iota=3,同上一行,相当于写b+iota,b=1)
	e                        //5 (iota=4,同上一行,相当于写b+iota,b=1)
	f   = "last one but one" //  (iota=5)
	end = iota               //6 (iota=6)
)
fmt.Println(a, reflect.TypeOf(a))
fmt.Println(b, reflect.TypeOf(b))
fmt.Println(c, reflect.TypeOf(c))
fmt.Println(d, reflect.TypeOf(d))
fmt.Println(e, reflect.TypeOf(e))
fmt.Println(f, reflect.TypeOf(f))
fmt.Println(end, reflect.TypeOf(end))
/* 
输出:
1 int
1 int
3 int
4 int
5 int
last one but one string
6 int
*/

更多内容请查看 go语言最佳实践

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值