如何在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

回到顶部