익명 메서드 포함을 사용하는 경우 "부모"구조체의 메서드에서 "자식"구조체의 이름에 액세스 할 수있는 방법이 있습니까? 예삽입 포함 반사로 이동
:
가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에서 가능합니까?
감사합니다.
고마워요, 그게 내가 끝내는 길일지도 몰라. 실제 사용 사례에는 "인스턴스"에 대해 작동하는 여러 메서드와 "클래스"에 대한 일부 메서드가 포함됩니다. 일관성을 위해서 점 표기법을 사용하여 메서드를 호출하고 싶습니다. 문제는 각각의 메소드가 구조체의 이름을 알아야한다는 것입니다. –