Tiếp cận struct Dưới đây là một chương trình đi đơn giản không hoạt động:GoLang: bất động sản theo tên
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]
}
Lỗi: prog.go:18: invalid operation: v[property] (index of type *Vertex)
Những gì tôi muốn là để truy cập vào các tài sản Vertex X sử dụng tên của nó. Nếu tôi làm v.X
nó hoạt động, nhưng v["X"]
thì không.
Ai đó có thể cho tôi biết cách thực hiện tác phẩm này không?
+1 và xem thêm [Luật phản ánh] (http://blog.golang.org/laws-of-reflection) giới thiệu ý tưởng. –
Điều này phản ánh mô-đun là loại khó khăn. Tôi đã cố gắng sử dụng nó mà không thành công. Có vẻ như tôi đã quên gọi 'Ìndirect'. Cảm ơn ví dụ làm việc và tất cả các giải thích. Thực sự đánh giá cao :-) –
Cảm ơn bạn đã giải thích ở trên mã. Đối với tôi, nó thậm chí còn hữu ích hơn bản thân mã! – Nebulosar