我有一些不同的结构像Big
与Small
嵌入在偏移0 如何访问Small
的结构域从代码,不知道Big
类型什么,但是已知Small
在偏移量0?Golang:转换结构嵌入在偏移0结构
type Small struct {
val int
}
type Big struct {
Small
bigval int
}
var v interface{} = Big{}
// here i only know about 'Small' struct and i know that it is at the begining of variable
v.(Small).val // compile error
看来,编译器理论上能够操作这样的表达,因为它知道Big
类型已Small
型嵌入式偏移量为0。有没有办法做这样的事情(可能与unsafe.Pointer
)?
忽略 - 没有真正的问题妥善 – Sridhar