假设我有一个看起来像这样的 Go 结构(为了解释,请原谅语法):
type Foo struct {
MyBar *Bar
}
type Bar struct {
value int
}
func (b* Bar) Bark() {
fmt.Printf("Hello I'm a bar with value: %v", b.value)
}
现在,假设此Foo结构存储在进程的内存中,并且MyBar填充该字段需要一些时间。就像,它是nil一段时间。有什么方法可以检查它是否保存以Bark()在运行时访问该方法而无需手动进行nil检查?
例如,类似:
// Early on, this happens:
f := &Foo{}
.
.
.
.
// And later, I wanna see if its safe to do:
if isSafe(b.MyBar) {
b.MyBar.Bar()
}
我问这个的原因是深度嵌套的指针,这可能会变得非常痛苦。有什么想法吗?
沧海一幻觉
森林海
随时随地看视频慕课网APP
相关分类