Ich versuche, eine generische Methode in Go zu erstellen, die eine struct
mit Daten aus einer map[string]interface{}
füllen wird. Zum Beispiel könnte die Methodensignatur und Nutzung wie folgt aussehen:Konvertieren von Karte in Struktur
func FillStruct(data map[string]interface{}, result interface{}) {
...
}
type MyStruct struct {
Name string
Age int64
}
myData := make(map[string]interface{})
myData["Name"] = "Tony"
myData["Age"] = 23
result := &MyStruct{}
FillStruct(myData, result)
// result now has Name set to "Tony" and Age set to 23
Ich weiß, das JSON als Vermittler durchgeführt werden kann; Gibt es einen anderen effizienteren Weg, dies zu tun?
Wenn Sie JSON als Vermittler verwenden, verwenden Sie sowieso reflection .. vorausgesetzt, Sie verwenden das stdlib 'encoding/json'-Paket, um diesen Zwischenschritt auszuführen. Können Sie eine Beispielzuordnung und Beispielstruktur für diese Methode angeben? benutzt werden? –
Ja, deshalb versuche ich, JSON zu vermeiden. Es scheint, dass es hoffentlich eine effizientere Methode gibt, von der ich nichts weiß. – tgrosinger
Können Sie einen Anwendungsfall angeben? Wie in - zeige einige Pseudocode, die zeigt, was diese Methode tun wird? –