Go语言的iota语法糖
在做项目的时候遇到了如下的用法,一开始不太理解什么意思,后来记起来了Go语言中含有一个语法糖iota。
1. iota是Go语言中的计数器,它只能在常量表法式中使用。并且只能用于int类型的常量。
a := iota // 编译错误,只能在常量表达式中使用
2. iota是一个计数器,iota可以将常量初始化为0,在第一个常量后面加上iota,则后序的常量默认递增,使用iota可以简化定义,在常量递增的情况下很有用。
const num = iota // num = 0const (a = iota // a = 0b // b = 1c // c = 2 d // d = 3
)
const (upsertPolicy = iota // upsertPolicy = 0insertPolicy // insertPolicy = 1updatePolicy // updatePolicy = 2
)
3. 也可以自定义类型,但是要保证类型式int类型
type newInt int
const (f newInt = iota // f = 0i // i = 1j // j = 2
)
4. 可以通过下划线跳过不想要的值
const (m = iota // m = 0__n // n = 3
)
5. 可以表示左移和右移动
const (y = 2 >> iota // y = 2,y右移0位x // x = 1,x右移1位
)
const (_ = iotal = 1 << iota // l = 2,l左移1位h // h = 4,h左移2位
)
6. 同理可以定义数量级
const (_ = iotaKB = 1 << (10 * iota) // KB = 1024,表示1向左移动10*1位MB // MB = 1024*1024,表示向左移动10*2位
)
7.iota以行位单位,同一行的iota数值一样
const (t, r = iota + 1, iota + 2 // t = 1,r = 2 (iota = 0)v, u // v = 2,u = 3 (iota = 1)p, q // p = 3,q = 4 (iota = 2)
)
8.iota可以实现插队,中间有别的常量会打断iota的递增,要想实现插队则在别的变量后面在加入iota
const (frist = iota // frist = 0sencond = 5thr = iota // thrid = 2last // last = 3
)
Go语言的iota语法糖相关推荐
- Java的12个语法糖【转】
本文转载自公众号 Hollis 原创: 会反编译的 Hollis 侵权删 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学 ...
- 不了解这12个语法糖,别说你会Java!
作者:Hollis 微信公众号:Hollis 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的 ...
- Java 语法糖详解
语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序 ...
- Vue学习日志之语法糖
语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有 ...
- 什么是语法糖(Syntactic sugar)?
大学时没选修编译原理这门课,不知道什么是语法糖,最近看React的官方文档才接触语法糖的概念,简单查了下资料记录下,以下是来自百度百科的解释: 语法糖(Syntactic sugar),也译为糖衣语法 ...
- java里面的语法糖(糖衣语法)
语法糖是一种用来方便程序员代码开发的手段,简化程序开发,但是不会提供实质性的功能改造,但可以提高开发效率或者语法的严谨性或者减少编码出错的机会. 总而言之,语法糖可以看作是编译器实现的一种小把戏. 语 ...
- 在Java中12个常见的语法糖!
作者 l Hollis 来源公众号 l Hollis(ID:hollischuang) 跟着Hollis大佬的脚步,学学学! 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧, ...
- 阿里云面试:什么是语法糖?Java中有哪些语法糖?
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
- 什么是语法糖?Java中有哪些语法糖?
本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理 1 语法糖 语 ...
最新文章
- C# delegate event
- Android SoundPool.play方法的音量与系统音量的关系
- 【转】王晟教授:给光纤3室研究生的一封公开信
- 【C++深度剖析教程1】C++中的经典问题解析-c++中的对象的构造顺序与析构顺序
- Python库大全(涵盖了Python应用的方方面面),建议收藏留用!
- react antd confirm content list_react简单的项目架构搭建过程
- vue 高阶面试题_大厂面试题合集
- android 数据库 字节数组,java - 如何使用活动的android序列化字节数组并将其存储到数据库中? - 堆栈内存溢出...
- 【Plesk经验分享】无法创建备份怎么办?
- mac上超好用的文字转语音工具【迅捷文字转语音】
- 关于安装ANACONDA遇到的无法定位动态链接库问题
- 【微信开发6】专属推广二维码 java+SpringBoot
- 美团程序员提问:应届生,工资34k,算多吗?
- 中国压电材料取得突破性进展,未来B超机可折叠弯曲
- 世界各地的标志性建筑物
- Sql Server查询本周及上周(周一-周日)具体某天的数据的sql语句
- Ubuntu安装Matlab其Simulink没有菜单栏的解决方案
- Mac下Sunny_Ngrok内网地址映射成外网
- 计算机应用当兵分配到哪,参军是怎么分配省份的 当兵会被分配到哪里
- distinct去重用法(简单明了)