go语言——const与iota配合实现枚举

本文介绍了Go语言如何使用const关键字和iota实现枚举,通过示例展示了如何批量声明常量并利用iota进行计数,以提高代码可读性和减少检查。枚举在Go中通过常量集合实现,iota在const块中作为行索引,自增用于初始化枚举值。
摘要由CSDN通过智能技术生成

const与iota配合实现枚举

  • 枚举例子
enum phoneType {

    miType = 0,

    huaweiType,

    oppoType

};

上面的代码段中就是c/c++的枚举,一般使用枚举可以有两点好处:

  1. 提高代码的可读性
  2. 使用的时候不需要做过多的检查判断
  • go语言const关键字

使用const关键字批量声明多个变量

const (

miType = 1

huaweiType = 2

oppoType

)

注意const关键字批量声明多个变量时,除了第一个外其它的常量右边的初始化表达式都可以省略,如果省略初始化表达式则表示使用前面常量的初始化表达式,对应的常量类型也是一样的。

比如上面的oppoType的值就为2

 

  • go语言iota关键字

iota在const关键字出现时将被重置为0,同时const中每新增一行常量声明将使iota计数一次可以将iota可理解为const语句块中的行索引。

看下面的代码:

package main

import (
    "fmt"
)

const x int = 10

const(
    Monday = iota+x    //iota+x =  			0+10=10 
    Tuesday   //iota+x   iota = 1  			1+10 =11
    Wednesday //iota+x   iota = 2  			2+10 = 12
    Thursday=8  //iota = 3         			8
    Friday    //8   iota = 4       			8
    Saturday  //8   iota = 5       			8
	Sunday = iota+x   //iota+x   iota = 6  	6+10 = 16
	numberOfDays//iota+x iota = 7          	7+10 = 17
)

func main() {
    fmt.Println("Monday=",Monday)
    fmt.Println("Tuesday=",Tuesday)
    fmt.Println("Wednesday=",Wednesday)
	fmt.Println("Thursday=",Thursday)
    fmt.Println("Friday=",Friday)
    fmt.Println("Saturday=",Saturday)
	fmt.Println("Sunday=",Sunday)
	fmt.Println("numberOfDays=",numberOfDays)
}

综上:如果需要实现枚举变量,只用用const批量声明,第一个定义为你想要的(起始值+iota)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值