提供潜在的nil变量以在GOLANG中运行

我想调用一个带有 int 变量的函数,该变量可以有一个值,也可以为 nil。在主函数中,我正在执行此调用。

doDomething(10) // does not work?
doDomething(nil) // works

func doSomething(parent_id *int) {
    fmt.Print(parent_id)
}

我收到以下错误:

不能在 doSomething 的参数中使用 (type int) 作为类型 *int

我使用 *int 指针,因此 nil 有效,但如果它是一个值则无效。然后我发现类型不匹配。

回答

doSomething期待一个*int参数。10 是 type int,所以这是他的错误来源。

这是一个有效的用法:

 i := 10
 doDomething(&i)

这是doSomething应该的样子:

func doSomething(parent_id *int) {
    if parent_id == nil{
        //nil
        fmt.Println("nil")
        return
    } 
    //valid int 
    fmt.Printf("%d", *parent_id)
}


以上是提供潜在的nil变量以在GOLANG中运行的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>