首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏咸鱼的进阶学习之路

    【初识Go】| Day3 变量、常量、枚举(iota

    这样做是因为 Go 语言中必须使用所有被声明的变量,但有时你并不需要使用从一个函数得到的所有返回值。 常量 常量是一个简单值的标识符,在程序运行时,不会被修改的量。 常量间的所有算术运算、逻辑运算比较运算的结果也是常量,对常量的类型转换操作或以下函数调用都是返回常量结果:len、cap、real、imag、complex unsafe.Sizeof。 但是它可以带来其它的特性,那就是 iota 常量生成器语法。 iota常量生成器 枚举,将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。 Go 语言中没有枚举这种数据类型的,但是可以使用 const 配合 iota 模式来实现。 这样做是因为 Go 语言中必须使用所有被声明的变量,但有时你并不需要使用从一个函数得到的所有返回值。 不过 iota 常量生成规则也有其局限性。

    65100发布于 2020-12-16
  • 来自专栏python-爬虫

    GO中标识符,标识符,变量,常量,iota

    Go语言中标识符由字母数字_(下划线)组成,并且只能以字母_开头。 三.常量 变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。 const pi = 3.1415 const e = 2.7182 声明了pie这两个常量之后,在整个程序运行期间它们的值都不能再发生变化了。 多个常量也可以一起声明: const ( pi = 3.1415 e = 2.7182 ) const同时声明多个常量时,如果省略了值则表示上面一行的值相同。 四.iota iotago语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0。

    1K20发布于 2020-06-19
  • 来自专栏sunsky

    iota: Golang 中优雅的常量

    常量是重要的,但是它们很难推断,并且难以维护。在一些语言中像 Ruby 开发者通常只是避免它们。在 Go常量有许多微妙之处。当用好了,可以使得代码非常优雅且易维护的。 这是因为常量Go 中是弱类型直到它使用在一个严格的上下文环境中。 Skipping Values 设想你在处理消费者的音频输出。 更精确地说,iota 总是用于 increment,但是它可以用于表达式,在常量中的存储结果值。 这里我们创建一个常量用于位掩码。 在 Go 语言的 spec 中, 这就是所谓的隐性重复最后一个非空的表达式列表。 如果你对鸡蛋,巧克力海鲜过敏,把这些 bits 翻转到 “on” 的位置(从左到右映射 bits)。 因此,对的 在 Go 中,关于常量有很多东西可以说,你应该在 golang 博客读读 Rob Pike 的这篇文章。

    1K10发布于 2020-08-20
  • 来自专栏友儿

    Go语言数据类型之特殊常量iota的使用(九)

    Go语言数据类型之特殊常量iota的使用 iota在const关键字出现时将被重置为0 package main import "fmt" const a = iota const b = iota fmt.Print(a) // 0 fmt.Print("\n") fmt.Print(b) // 0 } const中每新增一行常量声明将使 const ( a = iota b = iota _ // 跳值 c = iota ) func main() { fmt.Print * 2 b // 常量未使用表达式时,它会隐式继承前一个非空表达式 iota值为1 1 * 2 c // 常量未使用表达式时,它会隐式继承前一个非空表达式 iota值为2 2 * 2 ) func main() { fmt.Print(a) // 0 fmt.Print("\n

    42310编辑于 2022-09-11
  • 来自专栏院长运维开发

    Goiota

    iota iota,特殊常量,可以认为是一个可以被编译器修改的常量 iota可以被用作枚举值 package main import "fmt" func main() { /* 第一个 iota为:0 依次加1 每个const的第一个iota都从0开始 */ const ( a = iota b c d = "卧槽 " e f = iota g = iota ) fmt.Println(a,b,c,d,e,f,g) } 输出结果: 0 1 2 卧槽 卧槽 5 6

    38340发布于 2020-07-09
  • 来自专栏章鱼的慢慢技术路

    Go语言_iota用法

    一、介绍 iota,特殊常量,可以认为是一个可以被编译器修改的常量。 在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。 iota 可以被用作枚举值: package main import "fmt" func main() { const ( a = iota //0 b = iota //1 c = iota //2 ) fmt.Println(a,b,c) } 第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 //"ha" iota += 1 f = 100 //iota +=1 g //100 iota +=1 三、参考资料 iota: Golang 中优雅的常量 iota:Elegant Constants in Golang

    80310发布于 2018-08-03
  • 来自专栏solate 杂货铺

    go语言学习-iota

    Go没有枚举类型,可以用常量模拟可以用iota生成从0 开始的自动增长的枚举值。 按行递增,可以省略后续行的 iota 关键字. iota 在一个const()中每次累加1,在不同const()中重新赋值为0开始 const ( Sundy = iota Monday Tuesday ) /*Sunday= 0 Monday= 1 Tuesday= 2*/ 在一个const中itoa 继续累加 const ( A1 = iota //0 A2 str = "Hello" //独立值 s //没有赋值,跟上一行一样,要想恢复自增,需再次赋值 iota A3 = iota A4 ) /*A1= 0 A2= 1 str= Hello s= Hello A3= = 2*/ const ( one = iota two three ) /*one= 0 two= 1 three= 2*/

    75750发布于 2019-07-22
  • 来自专栏代码世界

    go-变量常量

    变量常量 变量 变量:主要作用是存储信息,类似一个容器。变量的值是存储在计算机内存中。    在go中,变量有三个属性:变量类型、变量名变量值。 0,字符串是空字符串,布尔类型是false,切片、函数、指针变量是nil; 声明变量并初始化的时候也可以不用指定类型,go语言会根据等号右边的值类型自动推导变量的类型。 声明初始化常量变量类似,关键字换成 const 。 const 同时声明多个常量时,如果省略了值则表示上面一行的值相同。 iota iotago语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0。 const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。

    57010发布于 2020-02-25
  • 来自专栏Golang语言社区

    奇怪的go语言iota

    go语言iota有点奇怪,看下面代码: package mainimport ( "fmt")const ( TestMin = -1 TestA TestB = iota TestC)func main() { fmt.Printf("TestMin:%d\n", TestMin) fmt.Printf 结果是这样的,看到结果,对iota的用法就基本掌握了: /* TestMin:-1TestA:-1TestB:2TestC:3*/ 再来看一例: package mainimport ( "fmt ")const ( i=1<<iota j=3<<iota k l )func main() { fmt.Println("i=",i) fmt.Println(" i=1<<iota j=3<<iota k l 也就是 i=1<<0 j=3<<1 k=3<<2 l=3<<3 iota每出现一次,自动加1;而前面的操作数如果不指定

    1.6K60发布于 2018-03-21
  • 来自专栏贾维斯Echo的博客

    Go基础之变量常量

    Go基础之变量常量 一. 标识符、关键字、内置类型函数 1.1 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字_(下划线)组成,并且只能以字母_开头。 举几个例子:abc, _, _123, a123。 语言中还有37个保留字 保留字:主要对应内建的常量、类型函数 Constants: true false iota nil 内建函数 Types: int 所以,Go 在这个特性的基础上又提供了“神器”:iota,有了 iota,我们就可以定义满足各种场景的枚举常量了。 iota 介绍 iotaGo 语言的一个预定义标识符-常量计数器,只能在常量的表达式中使用。 iota 表示的是 const 声明块(包括单行声明)中,每个常量所处位置在块中的偏移值(从零开始)。

    59140编辑于 2023-10-18
  • 来自专栏null的专栏

    Go语言基础】变量常量

    // 合法标识符 _a1 // 合法标识符 1_a // 非合法标识符 在Go语言中,标识符分为预定义标识符可自定义标识符。 预定义标识符是指Go语言中预先定义好的标识符,包括关键字,内置数据类型标识符,常量值标识符,内置函数空白标识符。 变量常量 变量常量是编程语言中最基本的组成元素,通过一个指定的标识符指向一块内存空间,程序中可以通过此标志符对内存的操作,根据内存空间中的内容是否能够被修改分为变量常量,变量是指标志符指向的内存空间的内容是可改变的 预定义常量 Go语言中有一些预定义常量,如:true、falseiota。 预声明标识符iota用在常量声明中,其初始值为0,在一组多个常量同时声明时,其值会自动加1,如: const ( a_1 = iota // 0 a_2 = iota // 1 a_3 = iota

    63820发布于 2021-09-06
  • 来自专栏【全栈开发之路】

    Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘

    引言 Go 语言作为现代编程领域的重要成员,对变量常量的处理体现了静态类型语言的精髓。 二、常量 2.1 Go语言常量溯源:从C语言到Go 在探索Go语言常量的设计理念之前,回顾一下C语言中的常量概念是十分有益的,因为C语言对许多现代编程语言的常量变量处理方式有着深远的影响。 四、总结 Go语言在变量常量的处理上展现了其卓越的设计强大的功能: 通过静态类型系统,Go 确保了变量声明的严谨性类型安全,减少了运行时错误。 在常量管理上,Go通过有类型常量无类型常量的结合,以及引入独特的iota计数器,为开发者提供了一种简洁而强大的枚举实现方式。 iota的高级运用,如表达式结合、值重置跳过特定值等,进一步丰富了枚举常量的定义方式,使Go 成为编写高质量、高性能软件的理想选择。

    1K10编辑于 2024-06-14
  • 来自专栏利志分享

    go常量

    常量是指程序运行时不可改变的值,常量必须初始化值,定义常量可以指定类型,编译器也可以通过常量初始化值做类型推断。在函数代码块中定义常量,不被使用也不会出现编译错误。 在常量组中如果不指定常量类型初始化值,那么常量上一行的非空常量值相同。 例子如下: package main import( "fmt" ) const a = 1 //定义常量 const b = "test" const( //批量声明常量,用括号 c,d,e = 1,2,3 f,g,h = 4,5,6 ) const i,j,k = 99,88,33 //批量声明常量,用逗号分开 //iota,只能在const内部使用 const t = iota const ( l = iota m n ) func main(){ fmt.Println(a,b) fmt.Println(c,d,e,f,

    37220编辑于 2022-04-25
  • 来自专栏Go技术干货

    Go 语言 iota 的神奇力量

    前言当你深入研究官网库、开源库或者任何一个 Go 项目时,你都会发现 iota 这个神奇的标识符无处不在。它扮演着一种重要的角色,让代码变得更加简洁、清晰,并提高了可读性可维护性。 它的应用范围广泛,从枚举类型到位运算,再到复杂的常量表达式计算,无所不能。在本文中,我将带着大家深入探讨 iota 的神奇力量,包括 iota 的介绍应用场景以及使用技巧注意事项。准备好了吗? 在常量声明中的第一个使用 iota常量初始化为 0,而后出现的常量的值都会自动递增,这使得在定义一组递增常量时无需手动指定每个常量的值,提高了代码的 可读性 可 维护性。 // 4Saturday // 5Monday // 6)如果想了解更详细的枚举用法,可前往 Go // 4)iota 的使用技巧注意事项跳值使用我们可以使用 _ (下划线)来忽略某些值,例如:const (Apple = iota // 0_Banana // 2)不同常量块,iota 是独立的iota

    51921编辑于 2023-11-07
  • 来自专栏Go入门到入土

    Go 语言中的变量常量

    3、命名规范为了在代码中清晰地区分常量变量,Go 语言的开发社区遵循以下命名规范:常量名全部大写。如果常量名由多个单词组成,使用下划线 _ 分隔。 3、Go 语言中的 iota 详解iotaGo 语言中一个非常有用的关键字,专用于常量的定义。它可以被看作一个可由编译器在编译期间修改的特殊常量iota 的主要作用是简化具有递增规律的常量的定义,尤其在定义枚举值、错误码等场景中,能显著提高代码的可读性可维护性。 例如,让序列从 1 开始:4、中断恢复 iota如果在 const 组中,你手动为某个常量赋值,那么 iota 的递增在这一行会被中断。但是,iota 的内部计数器仍然会根据行数继续增加。 中断不影响计数:即使某一行不使用 iota,其内部计数器依然会增加。当后续行恢复使用 iota 时,将获取该行对应的计数值。iotaGo 语言中一个精妙的设计,掌握它能让你的代码更加简洁优雅。

    45320编辑于 2025-06-15
  • 来自专栏程序员

    go语言快速入门——常量变量

    常量go中,所有的字面值都是常量,被称为“无名常量”,falsetrue是预声明的两个具名常量。自定义具名常量使用关键字 const 定义,用于存储不会改变的数据。C/C++中宏定义类似。 如果一个运算中的所有运算数都为常量,则此运算的结果也为常量。 存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型复数)字符串型,其它的类型不允许以常量的形式存在。 《go语言的空白标识符》 iota iotaGo中预声明(内置)的一个特殊的具名常量iota被预声明为0,但是它的值在编译阶段并非恒定。 非常量浮点数整数值可以被显式转换为任何浮点数整数类型。 非常量复数值可以被显式转换为任何复数类型。 (主要是指complex64complex128之间的转换) 注意事项: 非常量复数值不能被转换为浮点数或整数类型。 非常量浮点数整数值不能被转换为复数类型。

    91930编辑于 2022-07-27
  • 来自专栏乔边故事

    Go语言中的常量变量

    标识符关键字 标识符 标识符只能以字母 _组成,并且只能以字母 _开头。 常量是恒定不变的值,声明常量的关键字是 const 。 常量在定义的时候必须赋值,如下: const c1 = 3.14159 多个常量也可以一起声明,如下: const ( c1 = 3.14 c2 = 0.68) 在批量声明常量的时候,如果其中有一个常量没有赋值 ,其内容上一个常量一样,如下c2,c3的内容也为200: const ( c1 = 200 c2 c3) iota iotago语言中的一种常量计数器,只能在常量的表达式中使用。 iota 在 const 关键字出现的时候被重置为0, const 中的变量每声明一行常量声明将使 iota 计数一次, iota 可理解为是 const 语句块中的行索引,使用 iota 能简化定义,

    87630发布于 2020-03-22
  • 来自专栏Golang开发

    Go基础——常量

    定义 关键字 const 被用于表示常量常量用于存储不会改变的数据,常量中的数据类型只可以是布尔型、数字型(整数型、浮点型复数)字符串型。 (4) is not a constant) 字符串常量   双引号中的任何值都是 Go 中的字符串常量。 布尔常量 布尔常量字符串常量没有什么不同。他们是两个无类型的常量 true false。字符串常量的规则适用于布尔常量,所以在这里我们不再重复。以下是解释布尔常量的简单程序。 数字常量 数字常量包含整数、浮点数复数的常量。数字常量中有一些微妙之处。 让我们看一些例子来说清楚。 枚举 常量还可以用作枚举, 如下数字 0、1 2 分别代表未知性别、女性男性 const ( Unknown = 0 Female = 1 Male = 2 ) 关键字iota

    80340发布于 2019-05-28
  • 来自专栏Pythonista

    Go 语言常量

    常量是一个简单值的标识符,在程序运行时,不会被修改的量。 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型复数)字符串型。 常量的定义格式: package main import "fmt" //常量的数据类型 只可以是布尔型、数字型(整数型、浮点型、复数)、字符串型 func main() { const identifier c=unsafe.Sizeof(a) ) func main() { println(a,b,c) } iota iota,特殊常量,可以认为是一个可以被编译器修改的常量iota 可以被用作枚举值: const ( a = iota b = iota c = iota ) //因此这里,第一个iota a是0,新一行使用iota就自动加1,所以是 package main // iota 特殊常量,一个可以被编译器修改的常量 // 每一个const关键字出现时,被重置为0,然后下一个const出现之前,每一个iota,代表的数字会增加1 import

    55810发布于 2018-08-31
  • 来自专栏各类技术文章~

    Go语言基础之变量常量

    标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字_(下划线)组成,并且只能以字母_开头。 常量 相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。 const pi = 3.1415 const e = 2.7182 复制代码 声明了pie这两个常量之后,在整个程序运行期间它们的值都不能再发生变化了。 多个常量也可以一起声明: const ( pi = 3.1415 e = 2.7182 ) 复制代码 const同时声明多个常量时,如果省略了值则表示上面一行的值相同。 iota iotago语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0。

    36200编辑于 2021-12-24
领券