Home  >  Article  >  Backend Development  >  golang enumeration to int

golang enumeration to int

WBOY
WBOYOriginal
2023-05-14 18:55:09960browse

In Golang, although it does not have an enumeration type, we can still implement the enumeration function in other ways. For situations where we need to convert an enumeration type to an integer type, we can use the following method for conversion.

Suppose we have the following enumeration type:

type Color int

const (
    Red Color = iota
    Green
    Blue
)

We can get the integer value of each enumeration value by converting the enumeration type to an integer type. In Golang, enumeration values ​​using basic types can be signed or unsigned integer types.

If you need to convert the enumeration type to an integer type, you only need to perform type conversion on the enumeration value, as shown below:

func main() {
    var color Color = Blue
    fmt.Println(int(color)) // 输出2
}

The above code converts the enumeration type to Color The value is converted to an integer type and output. In this example, the value of Blue is 2, so the output is 2.

At the same time, we can also consider adding a ToInt method to the enumeration type to directly convert the enumeration value into an integer type. For example:

func (c Color) ToInt() int {
    return int(c)
}

Then, we can use this method as follows:

func main() {
    var color Color = Green
    fmt.Println(color.ToInt()) // 输出1
}

When we need to convert the enumeration type into an integer type, the above two methods can get what we want desired result.

Although Golang itself does not provide enumeration types, we can simulate enumerations through constants and iota. This implementation method is simpler, more flexible, and can also meet our needs.

In general, it is a very simple thing to convert enumeration types into integer types in Golang. We can use type conversion or custom methods to achieve this, and we can choose according to specific needs.

The above is the detailed content of golang enumeration to int. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn