Я хотел бы знать, существует ли собственный способ преобразования строк, например:
a.string
a-string
a_string
a string
В строке, следующей за соглашением для открытых структур членов структуры, в Go.
Идея состоит в том, чтобы написать функцию, которая принимаетstring и попытайтесь получить значение поля, даже если переданная строка не использует соглашение PascalCase, например:
type MyStruct struct {
Debug bool
AString bool
SomethingMoreComplex
}
var myStruct MyStruct
func GetField(s string) reflect.Value {
v := reflect.ValueOf(myStruct)
return v.FieldByName(s)
}
function main() {
GetField("debug")
GetField("a.string")
GetField("a-string")
GetField("a_string")
GetField("-a.string")
GetField("something-more-complex")
}
Я использовал пакет strcase, но он работает только для ASCII.