<3> go 枚举

原创 2015年11月19日 18:14:21

在go语言中,没有直接支持枚举的关键字,也就造成go没有直接枚举的功能。但是go提供另一种方法来实现枚举,那就是const+iota

// 实现枚举例子

type State int

// iota 初始化后会自动递增
const (
    Running State = iota // value --> 0
    Stopped              // value --> 1
    Rebooting            // value --> 2
    Terminated           // value --> 3
)

func (this State) String() string {
    switch this {
    case Running:
        return "Running"
    case Stopped:
        return "Stopped"
    default:
        return "Unknow"
    }
}

func main() {
    state := Stopped
    fmt.Println("state", state)
}
// 输出 state Running
// 没有重载String函数的情况下则输出 state 0
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Go语言学习(三)枚举和类型

package main import "fmt" //1.枚举的使用 // 枚举指一系列相关的常量,比如下面关于一个星期中每天的定义。通过上一节的例子,我们 // 看到可以用在 const 后跟一对...

hdu 5546 Ancient Go 枚举 DFS

Ancient Go Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Tot...

Go语言基础:变量,常量,Boolean,字符串,iota枚举

定义变量格式:var 变量名 变量类型Go变量声明很奇怪,把类型放在变量名后面,这点与我们常用的C、JAVA等不一样,没办法,得习惯。Go对于已声明但未使用的变量会在编译阶段报错,要求好严格,但的确应...
  • uudou
  • uudou
  • 2016-08-15 14:56
  • 1098

R3暴力枚举驱动

  • 2014-03-31 05:24
  • 17KB
  • 下载

java高新技术【3】(枚举总结)

【1】枚举 ·一:为什么要有枚举    (1)问题:定义星期几或性别的变量,该这么定义?    假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday =0;      ...

SCUT ACM PLACTICE # 3 二进制枚举,深搜,广搜

SCUT ACM PLACTICE # 3 二进制枚举,深搜,广搜

HOOK SwapContext 枚举隐藏进程(学习笔记4)(3)

190   191 void  klisterUnload(IN PDRIVER_OBJECT pDriverObject) ...

POJ 1038 Bugs Integrated, Inc. 状态压缩dp+3进制枚举

题意: 给你n*m的方格(1 分析: 很明显m才10所以我们可以压缩状态 我们另dp【i】【j】表示第i行状态为j的时候最多能放多少个方格; 我们是逐格递推的那么每一次我们都假设当前格子为矩形的左下角...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)