Golang |常量
2022/1/9 6:05:18
本文主要是介绍Golang |常量,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
常量
定义
常量
是一个简单值的标识符,在程序运行时,不会被修改的量。常量使用一个名称来绑定一块内存地址,该内存地址中存放的数据类型由定义常量时指定的类型来决定,并且该内存地址里面存放的值是不可以被改变的,
Go语言中的常量分为:布尔型
、字符串类型
、数值型
。
常量一般存储在程序的只读段里。
字面常量
字面常量通常指的是程序中硬编码的常量:
如:
66 数值常量
3.1415926 浮点型常量
1.8 + 66i 复数类型的常量
true 布尔类型常量
"cat" 字符串常量
字面常量在Go语言程序中是无类型的,只要这个常量在相应类型的值域范围内,就可以做为该类型的常量。比如:66 就可以赋值给 :int
、uint
、int32
、int64
、float32
、float64
、complex64
、complex128
等。
常量的定义
Go语言的常量的定义可以限定常量类型,但是也可以不用,它和变量一样,如果定义的时候,没有指定类型,那么程序运行中,会概把字面常量把常量的类型给推导出来。
显式类型定义
显示定义常量,就是把常量的类型写出来。
const PATH string = "http://www.baidu.com" //定义一个百度网址常量字符串 const PI float64 = "3.1415926" //定义一个圆周率的常量
隐式类型定义
隐式写义常量就是定义的时候不写类型。
const NAME = "张三" //不写变量的类型 const SIZE = 1024
Go语言的常量可以定义的时候,右值也可以是一个编译期的运算的常量表式。如:
const num = 2 << 2
这是因为常量的赋值是在编译期进行的,所以可以出现也是编译期运行的常量的表达式,但是如果是编译期值还在变动的是不行的。
批量定义常量
如果我们在定义十多个常量的时候还每一个常量都写一个const
的话,那效率真的是太慢了。所以我们有下面的办法批量定义常量。
const( a = 1 b = 2 c = 3 )
根据上面的方法,我们可以批量的定义一组常量,并且还好管理,我们可以把同一类型的常量定义到一个const里面,这样可以使得代码更加的清晰。
预定义常量
Go语言里面预定义了一些常量,如:true
、false
、iota
其中iota
比较特殊,它可以被认为是一个可以被预编译的常量,在每一个const
关键字出现的时候被重置为0,然后在下一个const
出现之前,每出现一次iota
,其所代表的数字都会自动增加1。
//我们一般结合着const()来使用iota //如些上面的代码就可以改为 const( a = iota //0 b = iota //1 c = iota //2 )
这和上面的代码的效果是一样的。
也可以这样写:
const( a = iota //0 b //1 c //2 )
这样可以更加的简单一点,并且这样是因为,Go语言里面如果一组常量里面,如果某个常量 没有初始值,那么默认和上一行一致。
我们还可以在这里面运用表达式。
const( a = 1 << iota //0 b //2 c //4 )
枚举
在Go语言
没有专门来定义枚举类型
的关键字,所以我们用枚举类型
的时候,都是用常量
来定义的。例:
const( MONDAY = 1 + iota TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY )
上面是一个星期的枚举类型的定义。
细节决定成败!
个人愚见,如有不对,恳请斧正!
这篇关于Golang |常量的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29goland 编辑器超过线的插件有哪些?-icode9专业技术文章分享
- 2024-11-26go.mod的文件内容是什么?-icode9专业技术文章分享
- 2024-11-23MongoDB身份认证机制揭秘!
- 2024-11-20MongoDB教程:从入门到实践详解
- 2024-11-17执行 Google Ads API 查询后返回的是空数组什么原因?-icode9专业技术文章分享
- 2024-11-17google广告数据不同经理账户下的凭证可以获取对方的api数据吗?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用