如何在Golang中使用字符串新建对象
仅在字符串中具有对象类型时,如何创建对象?我正在寻找类似的东西:
type someStruct struct {}resultObject := new "someStruct"
当使用不同的ORM库(例如GORP和GORM)时,这将非常有用和方便。
可以在Golang中做到吗?
回答:
没有…
好吧,答案是“是,但是”,但是很大。Go中没有结构名称的中央注册表。您不会得到一个很好的,干净的标准库函数StructFromName(string)
,该函数可能正是您所希望的。
相反,您必须自己编写映射,例如
func StringToStruct(name string) (interface{}, error) { switch name {
case "SomeStruct":
return SomeStruct{}, nil
case "SomeOtherStruct":
return SomeOtherStruct{}, nil
case "subpackage.Struct":
return subpackage.Struct{}, nil
default:
return nil, fmt.Errorf("%s is not a known struct name", name)
}
}
以上是 如何在Golang中使用字符串新建对象 的全部内容, 来源链接: utcz.com/qa/430181.html