匿名メソッドの埋め込みを使用する場合、 "親"構造体のメソッドから "子"構造体の名前にアクセスする方法はありますか?例について埋め込みによるリフレクション
:
type Animal struct{}
func (a Animal) SayName() string {
v := reflect.TypeOf(a)
return v.Name()
}
type Zebra struct {
Animal
}
var zebra Zebra
zebraName := zebra.SayName() // "Animal" want "Zebra"
SayName()メソッドは、 "親" のtype.Name()
を返します。
私はこのようなことをすることができることを認識していますが、これはAPIのために頻繁に再利用されます。私は反復性の低いソリューションを持つことを好むだろう。
type Animal struct{
Name string
}
func (a Animal) SayName() string {
return a.Name
}
type Zebra struct {
Animal
}
zebra := &Zebra{Name:"Zebra"}
zebraName := zebra.SayName() // "Zebra"
どのようにこれを達成できますか?これはGoで可能ですか?
ありがとうございます。
ありがとうございました。実際のユースケースでは、「インスタンス」に対していくつかの動作を行い、「クラス」には複数のメソッドを使用します。一貫性のために、私はドット表記法を使用してメソッドを呼び出せるようにしたいと思います。問題は、これらのメソッドのそれぞれが構造体の名前を知る必要があることです。 –