1 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
可以使用反射包在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建類型的實(shí)例。您可以使用地圖來存儲您應(yīng)該能夠創(chuàng)建的不同類型:
例子:
package main
import (
"fmt"
"reflect"
)
type Foo struct {
Foo string
}
type Bar struct {
Bar int
}
func main() {
var sourceTypes = map[string]reflect.Type{
"foo": reflect.TypeOf(Foo{}),
"bar": reflect.TypeOf(Bar{}),
}
sourceName := "foo"
var deserializedData interface{}
deserializedData = reflect.New(sourceTypes[sourceName]).Interface()
fmt.Printf("%#v", deserializedData)
}
輸出:
&main.Foo{Foo:""}
游樂場: http : //play.golang.org/p/qeDA4cu5et
- 1 回答
- 0 關(guān)注
- 140 瀏覽
添加回答
舉報(bào)