一,常量

介绍

常量是在编译时期创建的,即使当定义在函数内,并且只能是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的简单用法相关推荐

  1. C语言结构体和结构体指针的简单用法

    C语言结构体和结构体指针的简单用法 这里总结一下自己的学习笔记,关于C语言当中的结构体指针的用法,以及结构体简单使用. 简单介绍一下今天出场的嘉宾–>结构体和结构体指针 什么是结构体: 1,定义 ...

  2. GO语言特殊常量之iota

    iota,特殊常量,可以认为是一个可以被编译器修改的常量. iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次 ...

  3. Go 常量之 iota

    Go 定义常量之 iota 文章目录 Go 定义常量之 iota 1. iota 只能在常量的表达式中使用 2. 每次 const 出现时,都会让 iota 初始化为0 3. 自定义类型 4. 可跳过 ...

  4. 2020-10-14Go语言数据类型和变量常量

    Go语言数据类型 在Go编程语言中,数据类型用于声明函数和变量 数据类型的出现就是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用有限的的计算机内存 ...

  5. 02-Go语言基础变量和常量

    标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名,常量名,函数名等等.Go语言中标识符由字母数字和_组成,并且只能以字母和_开头.举几个例子:abc,_,_123 ...

  6. php常量 变量,php语言的变量和常量

    php语言的变量和常量 变量和常量是php语言的一大知识点,下面我们一起来了解关于php语言的变量和常量吧,欢迎大家阅读! php语言的变量和常量 (一)常量 变量可以随时重新赋值 //$age = ...

  7. c语言字符常量和字符串常量_C语言中的字符常量

    c语言字符常量和字符串常量 Any character (a single character) that is enclosed within the single quotes (like, 'A ...

  8. c语言用宏定义常量_使用宏定义常量以在C的数组声明中使用

    c语言用宏定义常量 As we know that, while declaring an array we need to pass maximum number of elements, for ...

  9. Go语言逆向技术:常量字符串

    摘要:Go语言源代码编译成二进制文件后,源代码中的字符串存放在哪里?是如何组织的? 本文分享自华为云社区<go语言逆向技术之---常量字符串解密>,作者:安全技术猿. Go语言源代码编译成 ...

最新文章

  1. [C#]判断是否是合法的IP4,IP6地址
  2. easyswoole数据库连接池_easyswoole redis连接池:集群迁移教程
  3. EqualLogic全攻略视频[(一)介绍]
  4. 【C++】18.char[] 与 string 的区别 与 互相转化、c_str() 函数用法
  5. javascript showModalDialog,open取得父窗口的方法
  6. C# winform开发:Graphics、pictureBox同时画多个矩形
  7. java.io.CharConversionException isHexDigit JS转码问题
  8. 老师使用计算机给小孩子上课,“某某中学教师课堂教学现状”调查问卷
  9. 寒假作业3(传说中的写软件)
  10. [BZOJ4653 区间]
  11. IT战略规划怎样做得更务实
  12. C++之STL-vector-string-list-deque-queue-map-文件操作
  13. linux修改文件属性
  14. IE 代理服务器设置程序实现
  15. HTML 的属性 lang=“en“ 语言设置为中文
  16. 实验四——DPCM编码(1bit、2bit、4bit、8bit量化)
  17. java多线程-线程的停止【interrupt】
  18. Excel批量调整行高
  19. python爬虫数据分析项目 双十一_基于Python爬取京东双十一商品价格曲线
  20. 提醒事项 android,每日提醒 Pro-提醒事项、时间管理待办清单

热门文章

  1. 【Vue知识点- No8.】网易云音乐案例(vant组件库的使用)
  2. deepin 下 WPS for linux字体显示问题[已解决]
  3. 2022年金属非金属矿井通风上岗证题库及模拟考试
  4. Appium H5自动化测试
  5. matplotlib只显示部分横坐标刻度,隐藏部分横坐标刻度
  6. 5.12日,好多人的ksjsb遇到签名认证啦~ 勉强跑跑吧~
  7. 将数组倒置java_java数组元素倒置
  8. 被公司笃定不敢辞职,毅然裸辞出来,九月拿下29K的offer,这波我赢麻了...
  9. PCB抗干扰设计原则
  10. 小身躯,大志向,宇通智能巴士有哪些黑科技