Ecco un semplice programma di andare che non funziona:GoLang: Accesso struct proprietà per nome
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]
}
Errore: prog.go:18: invalid operation: v[property] (index of type *Vertex)
Quello che voglio è quello di accedere alla proprietà Vertex X utilizzando il suo nome. Se faccio v.X
funziona, ma non lo fa v["X"]
.
Qualcuno può dirmi come farlo funzionare?
+1, e vedere anche [Le leggi di riflessione] (http://blog.golang.org/laws-of-reflection) che fornisce un'introduzione all'idea. –
Questo modulo di riflessione è un po 'complicato. Ho provato a usarlo senza successo. Sembra che mi stia dimenticando di chiamare "Ìindiretto". Grazie per l'esempio di lavoro e tutte le spiegazioni. Apprezzo davvero :-) –
Grazie per la spiegazione sopra il codice. Per me è ancora più utile del codice stesso! – Nebulosar