Go并没有明确意义上的enum(枚举)定义,不过可借助iota标识符实现一组自增常量值来实现枚举类型

iota是go语言的常量计数器,只能在常量的表达式中使用,const中每新增一行常量声明iota计数一次(iota可理解为const语句块中的行索引)

const(x = iota //0y        //1z        //2
)跳过某些值const(x = iota //0_y        //2z        //3
)

自增作用范围为常量组,可在多常量定义中使用多个iota,它们各自单独计数,只许确保组中每行常量的列数量相同即可

const(a, b = iota, iota//0, 0c, d             //1, 1
)

如果需要中断iota自增,则需要显示恢复,且后值会与上一行常量右值表达式相同

const(a = iota//0b       //1c = 100//100d      //100e = iota//2f       // 3
)

自增默认数据类型是int,可以显示转换

const(a = iota  // intb float32 = iota  //float32c = iota  // int (如果不显示指定=iota,则类型和b相同)
)

Golang:iota(枚举)相关推荐

  1. Go之开发小功能集合(viper获取配置信息,test编写测试单元,用户目录获取,JWT安全校验,字符串去重,Swag在线接口文档,画字符图像工具,Gin模式的选择,iota枚举,promhttp等)

    提示: 该链接是go语言小工具: https://www.kancloud.cn/congzaifeng/go_third_party_libraries/467593 Go语言学习全面文档:http ...

  2. golang实现枚举类型

    描述 golang无枚举类型, 但可以借助自定义类型实现 什么是枚举类型 枚举类型是一种类型, 它的值只有有限个. 换而言之, 枚举类型=一个类型+N个离散值 go的实现, 可以自定义一个类型, 把它 ...

  3. Golang iota踩坑

    iota是Golang中的一个特殊变量,通常在定义"枚举"时使用. 1. 单独声明每个常量,每遇到const时iota为0 package mainimport "fmt ...

  4. go语言的iota是什么意思_go语言基础之iota枚举

    1.iota (在常量的时候,当成枚举使用) 示例1 package main import "fmt" func main() { //1.iota常量自动生成器,每个一行,自动 ...

  5. golang 的枚举

    package mainimport ("fmt" )const (a = 1bcd = 2ef = "aa"gh =iotaij )func main() { ...

  6. Golang iota详解

    iota是go语言的常量计数器,只能在常量表达式中使用 iota在const关键字出现时将被重置为0,const中每新增一行常量声明将使iota计数一次 可理解为const语句块中的行索引. 1.在常 ...

  7. golang枚举类型 - iota用法拾遗

    在c#.java等高级语言中,经常会用到枚举类型来表示状态等.在golang中并没有枚举类型,如何实现枚举呢?首先从枚举的概念入手. 1.枚举类型定义 从百度百科查询解释如下:http://baike ...

  8. Go开发 之 基础语法(常量、枚举、注释、类型别名、指针)

    文章目录 1.常量(const关键字) 1.1.概念 1.2.iota 常量生成器 1.3.无类型常量 2.枚举(const和iota枚举) 2.1.概念 2.2.将枚举值转换为字符串 3.注释(定义 ...

  9. golang基础知识

    文章目录 Go 学习笔记 一.Go常用命令 二.注释 三.命名规则 四.变量 五.基础数据类型 1.布尔类型 2.浮点型 3.字符类型 4.字符串类型 5.数字类型 6.常量 7.iota 枚举 四. ...

  10. 含枚举类型的函数声明_02Golang基础类型

    基础类型 命名 Go语言中的函数名.变量名.常量名.类型名.语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母.数 ...

最新文章

  1. 嵌入式移植NTP(Network Time Protocol)
  2. [转载] 理解RESTful架构
  3. 黑龙江科技大学计算机是几本,黑龙江科技大学是几本
  4. oracle v$system_event,45.Oracle杂记——Oracle常用动态视图v$system_event
  5. linux安装qq_Windows和Linux的比较
  6. ghostscript windows mac 下安装和 C++ 程序调用
  7. godot常用的一些概念、组件(整理于官方教程)
  8. Matconvnet学习笔记
  9. 关于二进制转换为十六进制
  10. 基于PT100的温度测量系统设计
  11. 华北电力大学计算机学科排名,2018年华北电力大学世界排名、中国排名、专业排名...
  12. 数据结构 严蔚敏 第八章 排序 期末复习总结
  13. unix网络编程中的fd是什么
  14. DOS计算机设置登录密码,如何在DOS里设置计算机密码
  15. Android 软件开发时用到的一些有用软件列表
  16. ATT7022系列STM32F1的HAL库读写操作流程
  17. 机器学习模型 知乎_深度剖析知乎目前的内容架构模型
  18. 你为什么要学习这门专栏?
  19. 【原创】VBA学习笔记(302)VBA的变量的作用范围 与 生命周期
  20. 身份证号码的合法性校验

热门文章

  1. 爱奇艺qsv格式转mp4最简单的方法,还有腾讯视频缓存合并转mp4,B站缓存合并 -没有之一
  2. [附源码]Java计算机毕业设计SSM大学生健康电子档案系统
  3. 科技攻关 成功构建出国产芯片区块链智能合约专用并行计算卡
  4. 智能充电桩系统PHP源码,【基于51单片机】电动车智能充电桩(全套)
  5. 你认为什么样的性格、能力和个人素质适合这个单片机行业
  6. 大数据时代来临 机房精密空调将迎来黄金发展期
  7. 企企通入选《高质量数字化转型产品及服务全景图》,助力行业数智化高质量发展
  8. 用python画画的原理_python来画画第二弹!
  9. 软考打印准考证图片显示不出来问题
  10. 纸质义齿保障卡打印机