c语言iota怎么用,常量及iota的简单用法
一,常量
介绍
常量是在编译时期创建的,即使当定义在函数内,并且只能是numbers,characters(runes),strings或者booleans。由于编译时的限制,定义它们的表达式必须是可由编译器求值的常量表达式。
常量表达式案例
1 << 4是一个常量表达式。
math.Sin(math.Pi/3)不是常量表达式,因为math.Sin是在运行时执行的。
二,iota的使用注意事项
官方介绍:在Go中,枚举常量的创建推荐使用iota,由于iota能够作为表达式的一部分且能够隐式的重复,因此很容易的去构建复杂的值集。
官方使用案例
type ByteSize float64
const (
_ = iota // ignore first value by assigning to blank identifier
KB ByteSize = 1 << (10 * iota)
MB
GB
TB
PB
EB
ZB
YB
)
func (b ByteSize) String() string {
switch {
case b >= YB:
return fmt.Sprintf("%.2fYB", b/YB)
case b >= ZB:
return fmt.Sprintf("%.2fZB", b/ZB)
case b >= EB:
return fmt.Sprintf("%.2fEB", b/EB)
case b >= PB:
return fmt.Sprintf("%.2fPB", b/PB)
case b >= TB:
return fmt.Sprintf("%.2fTB", b/TB)
case b >= GB:
return fmt.Sprintf("%.2fGB", b/GB)
case b >= MB:
return fmt.Sprintf("%.2fMB", b/MB)
case b >= KB:
return fmt.Sprintf("%.2fKB", b/KB)
}
return fmt.Sprintf("%.2fB", b)
}
iota每遇到一个const都会清零
默认是从0开始,所以上面的( - = iota )表示抛弃第一个为0的数据
const 集合中从上到下,iota是逐步递增的,案例 1 << (10 * iota) 中的iota值为1,所以实际上是1左移10位等于1024,MB则是左移20位。依次类推知道YB。
民间案例
const (
a = iota //0
b //1
c //2
d = "ha" //独立值,iota += 1
e //"ha" iota += 1
f = 100 //iota +=1
g //100 iota +=1
h = iota //7,恢复计数
i //8
)
结果:
0 1 2 ha ha 100 100 7 8
通过该案例可以明显看到iota遇到主动赋值的条目时,并不会终止累加,而是会继续隐式增加iota的值。
有疑问加站长微信联系(非本文作者)
c语言iota怎么用,常量及iota的简单用法相关推荐
- C语言结构体和结构体指针的简单用法
C语言结构体和结构体指针的简单用法 这里总结一下自己的学习笔记,关于C语言当中的结构体指针的用法,以及结构体简单使用. 简单介绍一下今天出场的嘉宾–>结构体和结构体指针 什么是结构体: 1,定义 ...
- GO语言特殊常量之iota
iota,特殊常量,可以认为是一个可以被编译器修改的常量. iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次 ...
- Go 常量之 iota
Go 定义常量之 iota 文章目录 Go 定义常量之 iota 1. iota 只能在常量的表达式中使用 2. 每次 const 出现时,都会让 iota 初始化为0 3. 自定义类型 4. 可跳过 ...
- 2020-10-14Go语言数据类型和变量常量
Go语言数据类型 在Go编程语言中,数据类型用于声明函数和变量 数据类型的出现就是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用有限的的计算机内存 ...
- 02-Go语言基础变量和常量
标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名,常量名,函数名等等.Go语言中标识符由字母数字和_组成,并且只能以字母和_开头.举几个例子:abc,_,_123 ...
- php常量 变量,php语言的变量和常量
php语言的变量和常量 变量和常量是php语言的一大知识点,下面我们一起来了解关于php语言的变量和常量吧,欢迎大家阅读! php语言的变量和常量 (一)常量 变量可以随时重新赋值 //$age = ...
- c语言字符常量和字符串常量_C语言中的字符常量
c语言字符常量和字符串常量 Any character (a single character) that is enclosed within the single quotes (like, 'A ...
- c语言用宏定义常量_使用宏定义常量以在C的数组声明中使用
c语言用宏定义常量 As we know that, while declaring an array we need to pass maximum number of elements, for ...
- Go语言逆向技术:常量字符串
摘要:Go语言源代码编译成二进制文件后,源代码中的字符串存放在哪里?是如何组织的? 本文分享自华为云社区<go语言逆向技术之---常量字符串解密>,作者:安全技术猿. Go语言源代码编译成 ...
最新文章
- [C#]判断是否是合法的IP4,IP6地址
- easyswoole数据库连接池_easyswoole redis连接池:集群迁移教程
- EqualLogic全攻略视频[(一)介绍]
- 【C++】18.char[] 与 string 的区别 与 互相转化、c_str() 函数用法
- javascript showModalDialog,open取得父窗口的方法
- C# winform开发:Graphics、pictureBox同时画多个矩形
- java.io.CharConversionException isHexDigit JS转码问题
- 老师使用计算机给小孩子上课,“某某中学教师课堂教学现状”调查问卷
- 寒假作业3(传说中的写软件)
- [BZOJ4653 区间]
- IT战略规划怎样做得更务实
- C++之STL-vector-string-list-deque-queue-map-文件操作
- linux修改文件属性
- IE 代理服务器设置程序实现
- HTML 的属性 lang=“en“ 语言设置为中文
- 实验四——DPCM编码(1bit、2bit、4bit、8bit量化)
- java多线程-线程的停止【interrupt】
- Excel批量调整行高
- python爬虫数据分析项目 双十一_基于Python爬取京东双十一商品价格曲线
- 提醒事项 android,每日提醒 Pro-提醒事项、时间管理待办清单
热门文章
- 【Vue知识点- No8.】网易云音乐案例(vant组件库的使用)
- deepin 下 WPS for linux字体显示问题[已解决]
- 2022年金属非金属矿井通风上岗证题库及模拟考试
- Appium H5自动化测试
- matplotlib只显示部分横坐标刻度,隐藏部分横坐标刻度
- 5.12日,好多人的ksjsb遇到签名认证啦~ 勉强跑跑吧~
- 将数组倒置java_java数组元素倒置
- 被公司笃定不敢辞职,毅然裸辞出来,九月拿下29K的offer,这波我赢麻了...
- PCB抗干扰设计原则
- 小身躯,大志向,宇通智能巴士有哪些黑科技