Go语言入门之常量和常量生成器iota
2020-01-13 06:09
239 查看
1、常量概述
- 常量是一个固定值,在编译期就确定其结果(即程序还未运行时常量就已经有值了),声明时必须赋值且结果不可改变
- 因为常量在编译期就确定,从而可以防止程序在运行过程中意外修改,而变量随着程序运行值可能在变化。
- 常量关键字是const,变量是使用var定义
- 常量定义完可以不用使用,变量声明完必须至少使用一次
- go语言中常量的定义没有明确的语法要求,可以不全大写驼峰即可。
2、常量的定义
- 定义常量时如果不是必须指定特定类型,则可以省略类型,使用默认类型。且数值类型常量(不定义类型,可以是不太类型)可以直接进行运算,而两个同类型的变量才能进行运算。
- 常量的值可以是表达式但不允许出现变量。
- 注意平常定义常量类型都不会写出
- 当定义多个常量的时候,官方推荐使用常量组
- 当定义常量时,后一个常量如果没有赋值那么会与前一个常量值相同且第一个常量必须赋值
3、常量生成器
- 当一组常量都是数值类型,可以使用常量生成器iota指定这组常量按照特定规则变化
- iota起始值为0,每次增加1
[code]// 常量生成器iota const ( a = iota b c ) fmt.Println(a, b, c)//0 1 2 const ( d = iota + 8 e f ) fmt.Println(d, e, f)//8 9 10 const ( g = iota << 1 //0右移一位还是0 h //h是1(01 二进制右移一位变10=2十进制) l //l是2(10 二进制右移一位变100=4十进制) ) fmt.Println(g, h, l)//0 2 4
- 无论是否使用iota,常量组中每个常量的iota值都是固定的,iota按照顺序自增1。
- 每个常量组直接的iota值无影响。
[code]const ( m = 34 //iota=0 n = iota //iota=1 o //iota=2 p = 12 //iota=3 q = iota //iota=4 x //iota=5 ) fmt.Println(m, n, o, p, q, x)//34 1 2 12 4 5
总结:在一个常量组中如果未使用iota赋值则至少给常量组中的第一个常量赋值,且后一个常量如果没有赋值那么会与前一个常量值相同;一个常量组中的任意常量不管是否用iota赋值每个常量都有一个iota值,且按顺序从0自增1;如果常量组中的某一常量是另外赋值的,那么该常量的实际的值是另外赋给的值。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 【Go入门教程4】变量(var),常量(const),内置基础类型(Boolean、数值 byte,int,rune、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值
- Go入门自学宝典004-变量(声明与定义)、常量(const )、枚举(iota)
- Golang(Go 语言)入门学习-1-包,变量和函数
- Go语言基础:变量,常量,Boolean,字符串,iota枚举
- Go语言入门(四)——不定参数
- Go语言入门之for循环
- GO语言学习日记(六)常量的赋值
- Go语言中常量定义方法实例分析
- go语言快速入门:数据类型使用例(4)
- go语言快速入门:内建函数(6)
- Go语言入门5-map映射
- Go 语言基础教程:10分钟入门
- Go语言入门(二)——第一个Go程序
- Go语言入门之数组
- Go语言点滴之常量
- go语言入门,初体验,区块链
- go 语言中变量和常量的声明方法
- Go语言学习二:Go基础(变量、常量、数值类型、字符串、错误类型)
- Go学习笔记----2,各种语法基础技术使用详解(变量、常量、iota、运算符、条件语句)
- java语言基础入门——变量、数据及常量的介绍