如何使用匿名字段(或超類)獲得正確的結構類型?在Go中,如何使用匿名字段方法獲取TypeOf類型?
我試圖讓這種魚形容自己是鱈魚:
package main
import (
"fmt"
"reflect"
)
type Fish struct {
}
func (self *Fish) WhatAmI() string {
return reflect.TypeOf(self).String()
}
type Cod struct {
Fish
}
func main() {
c := new(Cod)
fmt.Println("I am a", c.WhatAmI())
}
我得到的輸出是:
I am a *main.Fish
我要的是:
I am a *main.Cod
如果目標是要知道從'Fish'方法的類型,不會幫助:這些方法的接收器即使嵌入到另一個結構中也將是一個'Fish'。 –