這裏打印「Foo」的方式是什麼?在這個例子中,什麼打印是「字符串」。使用反射獲取struct field的名稱
http://play.golang.org/p/ZnK6PRwEPp
type A struct {
Foo string
}
func (a *A) PrintFoo(){
fmt.Println("Foo value is " + a.Foo)
}
func main() {
a := &A{Foo: "afoo"}
val := reflect.Indirect(reflect.ValueOf(a))
fmt.Println(val.Field(0).Type().Name())
}
「有沒有辦法檢索表示parti的reflect.Value的字段名稱cular字段值「 - 爲什麼是這種情況?該字段本身不是類型和名稱的一部分嗎? – sat
@sat只要具有特定字段的'reflect.Value',它就與任何其他變量沒有區別。只有結構具有關於它的字段的信息。 – nemo
@sat:在你的例子中,對於任何其他字符串,「val.Field(0)」與「reflect.Value」沒有區別。它不會「記住」它是結構的一部分。 –