我面临一个 Golang 初学者问题,我不知道如何正确解决它。请你帮助我好吗?
信息:尽管这违背了 Go 的概念(不是试图成为一种 OOP 语言),但我仍然想讨论一些解决方案。
我想知道接收器/子项中的外部/父结构名称。请查看以下代码(游乐场:https ://play.golang.org/p/h6dARJQwidS )
package main
import (
"fmt"
"reflect"
)
type Parent struct {
Id uint32
}
func (p *Parent) GetStructName() string {
return reflect.TypeOf(p).Elem().Name()
}
type Child struct {
Parent
}
func main() {
myChild := Child{}
fmt.Println(myChild.GetStructName()) // Gives "Parent" instead of "Child". How to get "Child"?
}
它显示“父”,尽管结构是“子”。谁能告诉我如何获得正确的结构名称?我在另一个 stackoverflow 主题中看到一个“解决方案”“正确”工作(Go - get parent struct),但我认为这不是一个好的解决方案。
慕码人8056858
蓝山帝景
郎朗坤
相关分类