2 回答
TA贡献1802条经验 获得超6个赞
好吧,这是我会给出的答案。
我会创建函数来创建新的 StudentStat/EmployeeStat 来正确设置函数:Pending
func NewStudentStats(name, language string, tarticles, particles int) *StudentStats {
stats := &StudentStats{
name: name,
language: language,
Tarticles: tarticles,
Particles: particles,
}
// setting the correct Pending function to the Stats struct inside:
stats.Stats.Pending = stats.Pending
return stats
}
有关完整代码,请参阅工作 Playground 示例。
还要注意我对Go中面向对象编程的评论。
TA贡献1860条经验 获得超9个赞
问题在于您的统计信息类型嵌入了结构:Stats
type StudentStats struct {
Stats
// [..]
}
这一切都很好,但是您的类型具有字段,这是您正在调用的函数:StatsPendingProcess()
type Stats struct {
Pending func(int, int) int
}
func (g *Stats) Process() {
fmt.Println("Pending articles: ", g.Pending(1, 2))
}
但是没有任何东西会给 赋予值,所以它是,并且会恐慌。Pendingnilg.Pending(1, 2)
我不完全确定你的代码的意图是什么,但是要么实现为上的方法,要么在创建结构时分配一个值:Pending()Stats
sResult := StudentStats{
Stats: Stats{
Pending: func(a, b int) int {
// Do something.
}
},
// [..]
}
- 2 回答
- 0 关注
- 121 浏览
添加回答
举报