Hier ist ein einfaches Programm gehen, das nicht funktioniert:golang: Zugriff struct Eigenschaft mit Namen
package main
import "fmt"
type Vertex struct {
X int
Y int
}
func main() {
v := Vertex{1, 2}
fmt.Println(getProperty(&v, "X"))
}
func getProperty(v *Vertex, property string) (string) {
return v[property]
}
Fehler: prog.go:18: invalid operation: v[property] (index of type *Vertex)
Was ich will, das Vertex X Eigenschaft mit seinem Namen zuzugreifen ist. Wenn ich v.X
tun, funktioniert es, aber v["X"]
nicht.
Kann mir jemand sagen, wie man das macht?
+1, und siehe auch [Die Gesetze der Reflexion] (http://blog.golang.org/laws-of-reflection), die eine Einführung in die Idee gibt. –
Dieses Reflektormodul ist ziemlich kompliziert. Ich habe versucht, es ohne Erfolg zu verwenden. Es scheint, dass ich vergessen habe, 'Ìndirect' zu nennen. Danke für das Arbeitsbeispiel und die ganze Erklärung. Wirklich zu schätzen :-) –
Danke für die Erklärung über den Code. Für mich ist es sogar noch nützlicher als der Code selbst! – Nebulosar