在c ++中用enum编程iota相似性

时间:2017-02-09 07:22:32

标签: c++ go enums iota

对不起,我对Go的了解非常有限。 我有这样的定义

type ErrorVal int
const (
    LEV_ERROR ErrorVal = iota
    LEV_WARNING  
    LEV_DEBUG
)

稍后在我的Go示例代码中,我想为类型ErrorVal定义一个值。

我想要做的是在C中,我们可以像这样定义枚举值

enum ErrorVal myVal = LEV_ERROR;

我怎样才能在Go中做类似的事情?

2 个答案:

答案 0 :(得分:3)

使用以下sinppet:

myval := LEV_ERROR

var myval ErrorVal = LEV_ERROR

答案 1 :(得分:0)

您可以为变量指定常量,并获得与C enum相同的结果:

type ErrorVal int

const (
    LEV_ERROR ErrorVal = iota
    LEV_WARNING
    LEV_DEBUG
)

func main() {
    myval := LEV_ERROR
    fmt.Println(myval)
}

Go by Example

  

我们可以使用 iota 来模拟C的枚举或#define常量。