返回顶部
首页 > 资讯 > 后端开发 > GO >Go语言基础枚举的用法及示例详解
  • 345
分享到

Go语言基础枚举的用法及示例详解

2024-04-02 19:04:59 345人浏览 安东尼
摘要

目录概述一、普通枚举二、自增枚举注意代码 概述 将变量的值一一列举出来,变量只限于列举出来的值的范围内取值 Go语言中没有枚举这种数据类型的,但是可以使用const配合iota模式来

在这里插入图片描述

概述

将变量的值一一列举出来,变量只限于列举出来的值的范围内取值

Go语言中没有枚举这种数据类型的,但是可以使用const配合iota模式来实现

一、普通枚举


const (
	 cpp = 0
	 java = 1
	 python = 2
	 golang = 3
)

二、自增枚举

iota只能在常量的表达式中使用


fmt.Println(iota)  //undefined: iota

它默认开始值是0,const中每增加一行加1


const (
        a = iota  //0
        c         //1
        d         //2
    )

每次 const 出现时,都会让 iota 初始化为0


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

如果中断iota,必须显式恢复!!!


const ( 
    Low = iota    //0
    Medium        //1
    High = 100   //100
    Super        //100
    Band = iota  //4
)

如果是同一行,值都一样


const (
i          = iota
j1, j2, j3 = iota, iota, iota
k          = iota
)

可跳过的值


const (
		k1 = iota // 0
		k2        // 1
		_         //2
		_         //3
		k3       // 4
	)

中间插入一个值


const (
	Sun = iota //Sun = 0
	Mon        // Mon = 1
	Tue = 7    //7
	Thu = iota // 3
	Fri        //4
)

注意

  • iota 必须配合const 使用,否则undefined: iota
  • 每次 const 出现时,都会让 iota 初始化为0
  • 如果是同一行,值都一样

代码


package main
import "fmt"
func main() {
	//普通枚举
	const (
		cpp    = 0
		java   = 1
		Python = 2
	)
	fmt.Printf("cpp=%d  java=%d  python=%d\n", cpp, java, python) //a=0  b=1  c=2
	//1.iota只能在常量的表达式中使用
	//fmt.Println(iota)  //undefined: iota
	//2.它默认开始值是0,const中每增加一行加1
	const (
		a = iota //0
		b        //1
		c        //2
	)
	fmt.Printf("a=%d  b=%d  c=%d\n", a, b, c) //a=0  b=1  c=2
	//3.每次 const 出现时,都会让 iota 初始化为0
	const d = iota // a=0
	const (
		e = iota //b=0
		f        //c=1
	)
	fmt.Printf("d=%d  e=%d  f=%d\n", d, e, f) //d=0  e=0  f=1
	//4.如果中断iota,必须显式恢复!!!
	const (
		Low = iota //0
		Medium //1
		High = 100 //100
		Super //100
		Band = iota //4
	)
	//Low=0  Medium=1  High=100  Super=100  Band=4
	fmt.Printf("Low=%d  Medium=%d  High=%d  Super=%d  Band=%d\n", Low, Medium, High, Super, Band)
	//5.如果是同一行,值都一样
	const (
		i          = iota
		j1, j2, j3 = iota, iota, iota
		k          = iota
	)
	//i=0  j1=1  j2=1  j3=1  k=2
	fmt.Printf("i=%d  j1=%d  j2=%d  j3=%d  k=%d\n", i, j1, j2, j3, k)
	//6.可跳过的值
	const (
		k1 = iota // 0
		k2        // 1
		_         //2
		_         //3
		k3        // 4
	)
	//	k1=0  k2=1  k3=4
	fmt.Printf("k1=%d  k2=%d  k3=%d \n", k1, k2, k3)
	//7.中间插入一个值
	const (
		Sun = iota //Sun = 0
		Mon        // Mon = 1
		Tue = 7    //7
		Thu = iota // 3
		Fri        //4
	)
	//Sun=0  Mon=1  Tue=7  Thu=3  Fri=4
	fmt.Printf("Sun=%d  Mon=%d  Tue=%d  Thu=%d  Fri=%d\n", Sun, Mon, Tue, Thu, Fri)

}

以上就是Go语言基础枚举的用法及示例详解的详细内容,更多关于Go语言枚举的资料请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Go语言基础枚举的用法及示例详解

本文链接: https://lsjlt.com/news/157587.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Go语言基础枚举的用法及示例详解
    目录概述一、普通枚举二、自增枚举注意代码 概述 将变量的值一一列举出来,变量只限于列举出来的值的范围内取值 Go语言中没有枚举这种数据类型的,但是可以使用const配合iota模式来...
    99+
    2024-04-02
  • Go语言基础map用法及示例详解
    目录概述语法声明和初始化读取删除遍历总结示例 概述 map是基于key-value键值对的无序的集合 Go语言中的map是引用类型 必须初始化才能使用。 ...
    99+
    2024-04-02
  • Go语言基础数组用法及示例详解
    目录概述语法注意示例 概述 固定长度,数组声明后长度便不能再修改 只能存储一种特定类型元素的序列 语法 编号...
    99+
    2024-04-02
  • Go语言基础go build命令用法及示例详解
    目录go build一个Go项目在GOPATH下,会有如下三个目录 使用:注意: go build 1. 用于测试编译多个包或一个main包 2. build命令编译包丢弃非main...
    99+
    2024-04-02
  • Go语言基础go doc命令用法及示例详解
    目录go doc一、使用go doc命令在终端查看go doc packagego doc package/subpackagego doc package function二、使用...
    99+
    2024-04-02
  • Go语言基础函数基本用法及示例详解
    目录概述语法函数定义一.函数参数无参数无返回有参数有返回函数值传递函数引用传递可变参数列表 无默认参数函数作为参数二、返回值多个返回值跳过返回值匿名函数匿名函数可以赋值给一个变量为函...
    99+
    2024-04-02
  • Go语言基础结构体用法及示例详解
    目录概述语法结构体定义的三种形式第一种【基本的实例化】第二种【指针类型的结构体】第三种【取结构体的地址实例化,通过&的操作】初始化结构体键值对初始化结构体值列表填充结构体匿名...
    99+
    2024-04-02
  • Go语言基础if条件语句用法及示例详解
    目录概述语法格式规则 概述 条件语句需要开发者通过指定一个或多个条件 并通过测试条件是否为 true 来决定是否执行指定语句 并在条件为 false 的情况再执行另外的语句。 语法 ...
    99+
    2024-04-02
  • Go语言基础for循环语句的用法及示例详解
    目录概述语法注意示例一  死循环,读取文件示例二  打印乘法表示例三  遍历字符串,数组,map 概述 for循环是一个循环控制结构,可以执行指定次数的...
    99+
    2024-04-02
  • Go语言基础go接口用法示例详解
    目录概述语法定义接口实现接口空接口接口的组合总结 概述 Go 语言中的接口就是方法签名的集合,接口只有声明,没有实现,不包含变量。 语法 定义接口 type [接口名] inte...
    99+
    2024-04-02
  • Go语言基础类型及常量用法示例详解
    目录基础类型概述按类别有以下几种数据类型数值类型派生类型变量概述单个变量声明多个变量声明基础类型 概述 在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现时为了把数据...
    99+
    2024-04-02
  • Go语言基础switch条件语句基本用法及示例详解
    目录概述语法第一种【switch 带上表达式】第二种【switch 不带表达式】第三种【switch 初始化,表达式】注意示例一【根据今天的日期打印今天星期几】示例二【根据分数打印A...
    99+
    2024-04-02
  • Go语言实现枚举的示例代码
    在编程领域里,枚举用来表示只包含有限数量的固定值的类型,在开发中一般用于标识错误码或者状态机。拿一个实体对象的状态机来说,它通常与这个对象在数据库里对应记录的标识状态的字段值相对应。...
    99+
    2024-04-02
  • Go语言基础反射示例详解
    目录概述语法一、基本操作二、修改目标对象三、动态调用方法总结示例 概述 在程序运行期对程序动态的进行访问和修改 reflect godoc: https://golang.org/p...
    99+
    2024-04-02
  • TypeScript枚举的基础知识及实例
    目录前言TypeScript 中的枚举是什么在 TypeScript 中使用枚举需要注意什么常见枚举的类型枚举反向映射计算枚举总结前言 枚举是受 TypeScript 支持的数据类型...
    99+
    2024-04-02
  • Go语言基础go install命令使用示例详解
    目录go install一、使用二、包名和目录名的关系三、注意 go install 编译并安装代码包,对于库,会生成目标库文件,并且放置到GOPATH/pgk目录下。 对于可执文件...
    99+
    2024-04-02
  • Go语言基础go fmt命令使用示例详解
    go fmt 命令主要是用来帮你格式化所写好的代码文件【很多第三方集成软件都是使用了go fmt命令】 一、使用: go fmt <文件名>.go 使用go fmt命令...
    99+
    2024-04-02
  • Go语言字符串基础示例详解
    目录包含Contains(s,substr string) boolContainsAny(s, chars string) bool统计Count(s, substr string...
    99+
    2024-04-02
  • Java基础之枚举Enum类案例详解
    目录一、文章序言二、代码实践三、面试相关一、文章序言 Java中引用类型:数组、类、接口、枚举、注解 枚举这个既熟悉又陌生的东西具体再哪里可以使用呢? 什么是枚举? 枚举是一个引用...
    99+
    2024-04-02
  • Java中枚举类的用法示例详解
    目录1.引入枚举类2.实现枚举类3.枚举类的使用注意事项4.枚举的常用方法5.enum细节1.引入枚举类 Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作