您现在的位置是:群英 > 开发技术 > 编程语言
Go语言基础枚举的使用方法是什么,有什么类型的枚举
Admin发表于 2022-07-04 17:29:46705 次浏览
这篇文章主要给大家介绍“Go语言基础枚举的使用方法是什么,有什么类型的枚举”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Go语言基础枚举的使用方法是什么,有什么类型的枚举”文章能对大家有所帮助。



    概述

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

    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语言基础枚举的使用方法是什么,有什么类型的枚举内容,欢迎关注群英网络资讯频道,小编将为大家输出更多高质量的实用文章!

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    标签: Go语言
    相关信息推荐
    2022-06-24 17:51:29 
    摘要:这篇文章主要介绍了html5使用canvas压缩图片的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2022-05-11 16:09:32 
    摘要:在bootstrap中,formatter是一个函数,用于对当前列的数据进行格式化操作,语法为“formatter(value,row,index)”;语法中的参数分别代表当前单元格中的值、当前行以及当前行的下标。
    2022-04-28 16:36:58 
    摘要:红黑树的每个节点或者是黑色,或者是红色,根节点是黑色。
    云活动
    推荐内容
    热门关键词
    热门信息
    群英网络助力开启安全的云计算之旅
    立即注册,领取新人大礼包
    • 联系我们
    • 24小时售后:4006784567
    • 24小时TEL :0668-2555666
    • 售前咨询TEL:400-678-4567

    • 官方微信

      官方微信
    Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
    增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    微信公众号
    返回顶部
    返回顶部 返回顶部