gpt4 book ai didi

enums - 是否可以在不在 Golang 中创建 String() 的情况下获取 Enum 名称

转载 作者:IT老高 更新时间:2023-10-28 13:07:57 25 4
gpt4 key购买 nike

是否可以在不创建 func (TheEnum) String() string 的情况下在 Golang 中获取 Enum 名称?

const (
MERCURY = 1
VENUS = iota
EARTH
MARS
JUPITER
SATURN
URANUS
NEPTUNE
PLUTO
)

或者有没有办法动态定义常量?我找到了两种方法struct -基于和string - 基于,但两种方式都让我们重新输入每个标签 1 次(或复制粘贴和引用或使用编辑器的宏)

最佳答案

AFAIK,不,如果不将名称明确输入为字符串,您将无法做到这一点。但是您可以使用 stringer tool从标准工具包中为您完成:

For example, given this snippet,

package painkiller

type Pill int

const (
Placebo Pill = iota
Aspirin
Ibuprofen
Paracetamol
Acetaminophen = Paracetamol
)

running this command

stringer -type=Pill

in the same directory will create the file pill_string.go, in package painkiller, containing a definition of

func (Pill) String() string

建议与 Go 1.4+ 的 go generate 命令配合使用。

关于enums - 是否可以在不在 Golang 中创建 String() 的情况下获取 Enum 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27187132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com