gpt4 book ai didi

go - 验证在 struct golang 中设置了字段

转载 作者:数据小太阳 更新时间:2023-10-29 03:22:21 25 4
gpt4 key购买 nike

我有以下结构:

type Foo struct {
Bar *FooBar
Baz *FooBaz
}

type FooBar struct {
Name string
}

type FooBaz struct {
Name string
}

如何访问结构中的 BazBar 而不会在未设置时获取 nil 指针引用?

我想要如下所示的内容,但我不断收到 nil 指针取消引用错误。

if Foo.Bar == nil {
throw error
}

我正在为此苦苦挣扎!

最佳答案

您应该能够与 nil 进行比较,这是一个有效的示例:

check := func(f Foo) {
if f.Bar == nil {
panic("oops!")
}
fmt.Println("OK")
}

foo1 := Foo{Bar: &FooBar{"Alpha"}}
check(foo1) // OK

foo2 := Foo{}
check(foo2) // panic: oops!

请注意,如果您要修改“check”函数以接受 *Foo 并且它是用 nil 指针调用的,那么该函数本身会因“nil 指针取消引用运行时错误”而 panic .这可能是您的示例当前正在发生的情况。

关于go - 验证在 struct golang 中设置了字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51642487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com