Oto prosty program, który Go nie działa:GoLang: dostęp struct nieruchomość wg nazwy
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]
}
Błąd: prog.go:18: invalid operation: v[property] (index of type *Vertex)
Co chcę jest dostęp do własności Vertex X używając jego imienia. Jeśli wykonam v.X
, to działa, ale nie działa.
Czy ktoś może mi powiedzieć, jak to zrobić?
+1, patrz także [The Laws of Reflection] (http://blog.golang.org/laws-of-reflection), który stanowi wprowadzenie do idei. –
Ten moduł odbijający jest trochę skomplikowany. Próbowałem go użyć bez powodzenia. Wygląda na to, że zapomniałem nazywać 'Ìndirect'. Dzięki za działający przykład i wszystkie wyjaśnienia. Naprawdę doceniam :-) –
Dzięki za wyjaśnienie powyżej kodu. Dla mnie jest to nawet bardziej przydatne niż sam kod! – Nebulosar