2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
好吧,這是我會(huì)給出的答案。
我會(huì)創(chuàng)建函數(shù)來(lái)創(chuàng)建新的 StudentStat/EmployeeStat 來(lái)正確設(shè)置函數(shù):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
}
有關(guān)完整代碼,請(qǐng)參閱工作 Playground 示例。
還要注意我對(duì)Go中面向?qū)ο缶幊痰脑u(píng)論。

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
問(wèn)題在于您的統(tǒng)計(jì)信息類(lèi)型嵌入了結(jié)構(gòu):Stats
type StudentStats struct {
Stats
// [..]
}
這一切都很好,但是您的類(lèi)型具有字段,這是您正在調(diào)用的函數(shù):StatsPendingProcess()
type Stats struct {
Pending func(int, int) int
}
func (g *Stats) Process() {
fmt.Println("Pending articles: ", g.Pending(1, 2))
}
但是沒(méi)有任何東西會(huì)給 賦予值,所以它是,并且會(huì)恐慌。Pendingnilg.Pending(1, 2)
我不完全確定你的代碼的意圖是什么,但是要么實(shí)現(xiàn)為上的方法,要么在創(chuàng)建結(jié)構(gòu)時(shí)分配一個(gè)值:Pending()Stats
sResult := StudentStats{
Stats: Stats{
Pending: func(a, b int) int {
// Do something.
}
},
// [..]
}
- 2 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)