有沒有一種方法可以使用Reflect訪問1.8版本中未導出的字段? 這似乎不再工作:https://stackoverflow.com/a/17982725/555493訪問golang中未導出的字段/反映?
注意reflect.DeepEqual
作品就好了(也就是說,它可以訪問未導出字段),但我不能讓元首或功能的尾巴。下面是一個可以展示它的playarea:https://play.golang.org/p/vyEvay6eVG。在src代碼如下
import (
"fmt"
"reflect"
)
type Foo struct {
private string
}
func main() {
x := Foo{"hello"}
y := Foo{"goodbye"}
z := Foo{"hello"}
fmt.Println(reflect.DeepEqual(x,y)) //false
fmt.Println(reflect.DeepEqual(x,z)) //true
}
好,但你怎麼能知道是什麼類型,這樣你可以調用正確的方法? –
@UAvalos E.g.通過調用['Value.Type()'](https://golang.org/pkg/reflect/#Value.Type)(在字段的值上)。 – icza
會不會導致一個非常痛苦的開關塊?例如:案例Uint,案例Uint8,Uint16等...... –