我有一个结构:
type Parent struct {
*WithContext
}
type WithContext struct {
Ctx context.Context
}
func (wi *WithContext) SetContext(ctx context.Context) {
// nil pointer
wi.Ctx = ctx
}
Parent由一些自动化进程初始化(作为解组流的一部分),因此我无法初始化嵌入的WithContext结构,
有没有办法避免'SetContext'函数中的nil指针?我尝试重写指针接收器,但它没有任何效果,
谢谢,
阿萨夫。
答案 0 :(得分:1)
理想情况下,构建Parent
结构的任何内容都应初始化它,使其处于可用状态。但由于你无法控制它,下一个最好的事情就是让一段代码让你在WithContext
中设置Parent
指针,方法是在Parent
上提供成员函数或者只需在您的应用程序中设置一段代码即可,因为WithContext
字段已导出。