gpt4 book ai didi

go - 纵梁工具是否有 "reverse"?

转载 作者:行者123 更新时间:2023-12-01 21:13:56 24 4
gpt4 key购买 nike

在围棋中我可以使用 stringer将常量名称转换为字符串:

//go:generate stringer -type=M
type M int

const (
_ M = iota
Foo // "Foo"
Bar // "Bar"
)

有什么可以让我转换 "foo"字符串转换为 M 类型的变量除了手写开关?

最佳答案

找到了一种方法,但它仍然是半手动的。通过使用stringer创建的mapping slice,也可以搜索到逆向操作:

type Measurement int

const (
invalidMeasurement Measurement = iota
Meters
Liters
Pounds
)

// Works with golang.org/x/tools/cmd/stringer
// v0.0.0-20200925191224-5d1fdd8fa346
func UnString(s string) Measurement {
s = strings.ToLower(s)
l := strings.ToLower(_Measurement_name)
for i := 0; i < len(_Measurement_index)-1; i++ {
if s == l[_Measurement_index[i]:_Measurement_index[i+1]] {
return Measurement(i)
}
}
//
return Measurement(0)
}

关于go - 纵梁工具是否有 "reverse"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61310161/

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