go - 在 Go 中获取枚举的字符串表示的惯用方法是什么?
问题描述
如果我有一个枚举:
type Day int8
const (
Monday Day = iota
Tuesday
...
Sunday
)
有什么更自然的 Go方式来获取字符串呢?
功能:
func ToString(day Day) string {
...
}
或方法
func (day Day) String() string {
...
}
解决方案
第二个更惯用,因为它满足Stringer接口。
func (day Day) String() string {
...
}
Day
我们在type not type上声明此方法,*Day
因为我们没有更改值。
它会让你写作。
fmt.Println(day)
并获取String
方法产生的值。