首页 > 解决方案 > 在 Go 中获取枚举的字符串表示的惯用方法是什么?

问题描述

如果我有一个枚举:

type Day int8

const (
    Monday Day = iota
    Tuesday
    ...
    Sunday
)

有什么更自然的 Go方式来获取字符串呢?

功能:

func ToString(day Day) string {
   ...
}

或方法

func (day Day) String() string  {
    ... 
}

标签: go

解决方案


第二个更惯用,因为它满足Stringer接口。

func (day Day) String() string  {
    ... 
}

Day我们在type not type上声明此方法,*Day因为我们没有更改值。

它会让你写作。

fmt.Println(day)

并获取String方法产生的值。


推荐阅读