常量
2021/10/13 23:14:27
本文主要是介绍常量,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
常量
目录- 常量
- 常量声明格式
- iota
- 几个常见的iota示例
- 总结
相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把var
换成了const
,常量在定义的时候必须赋值。
const pi = 3.1415 const e = 2.7182
声明了pi
和e
这两个常量之后,在整个程序运行期间它们的值都不能再发生变化了。
多个常量也可以一起声明:
const ( pi = 3.1415 e = 2.7182 )
const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。 例如:
const ( n1 = 100 n2 n3 )
上面示例中,常量n1
、n2
、n3
的值都是100。
常量声明格式
const (关键字) 常量名 =常量值 赋值一次,不允许修改
//数据库,redis连接 //const NAME = "randy" const NAME string = "randy" const sex = true // 有类型常量 const typedhello string = "Hello World" func main() { //fmt.Println(NAME) //fmt.Println(sex) sex=false // fmt.Println(a) }
iota
iota
是go语言的常量计数器,只能在常量的表达式中使用。
iota
在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota
计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。
举个例子:
const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 )
几个常见的iota
示例
使用_
跳过某些值
const ( n1 = iota //0 n2 //1 _ n4 //3 )
iota
声明中间插队
const ( n1 = iota //0 n2 = 100 //100 n3 = iota //2 n4 //3 ) const n5 = iota //0 const ( a = 111 // 第一个声明的常量所在的行,此处虽然没有iota,但iota的值被置为0 b // b的表达式同上,所以为111,此处虽然没有iota,但因为是新增一个常量声明,所以iota的值加1 c1 // c的表达式同上,所以为111,此处虽然没有iota,但因为是新增一个常量声明,所以iota的值加1 d1 = iota // 此处的iota基于前面的基础加1,所以d为3 e1 = 333 f1 // 同上为333 g // 同上为333 ) fmt.Println(a,b,c1,d1,e1,f1,g) // 111 111 111 3 333 333 333
定义数量级 (这里的<<
表示左移操作,1<<10
表示将1的二进制表示向左移10位,也就是由1
变成了10000000000
,也就是十进制的1024。同理2<<2
表示将2的二进制表示向左移2位,也就是由10
变成了1000
,也就是十进制的8。)
const ( _ = iota KB = 1 << (10 * iota) MB = 1 << (10 * iota) GB = 1 << (10 * iota) TB = 1 <<(10 * iota) PB = << (10 * iota) )
多个iota
定义在一行
const ( a, b = iota + 1, iota + 2 //1,2 c, d //2,3 c 会与上一个值相同 e, f //3,4 e 会与上一个值相同 ) fmt.Println(aa,bb) fmt.Println(c,d) fmt.Println(e,f)
1 2
2 3
3 4
总结
- 程序运行期间常量值不允许修改
- 常量定义: const 关键字 常量名 类型 =常量值 赋值一次,不允许修改
- 定义常量不使用不会报错
iota
在const关键字出现时将被重置为0
这篇关于常量的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29RocketMQ底层原理资料详解:新手入门教程
- 2024-11-29RocketMQ源码资料解析与入门教程
- 2024-11-29[开源]6.1K star!这款电视直播源神器真的太赞啦!
- 2024-11-29HTTP压缩入门教程:轻松提升网页加载速度
- 2024-11-29JWT开发入门指南
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能