Go 多重零,零。。。围棋中的探测

Go 多重零,零。。。围棋中的探测,go,null,Go,Null,在go中,您可以获得多种回报,如: func getAdressParts() (plz *string, street *string) { return nil, nil } func main() { //if getAdressParts() == nil, nill { // println(true) //} else { // println(false) //} // As already suggested

在go中,您可以获得多种回报,如:

func getAdressParts() (plz *string, street *string) {
    return nil, nil
}

func main() {

    //if getAdressParts() == nil, nill {
    //   println(true)
    //} else {
    //   println(false)
    //}

    // As already suggested the answer is:
    if plz, street := getAdressParts(); plz == nil && street == nil {
        println("Hurra")
    } else {
        println("nope")
    }

}
是否有任何方法可以检查两个内联的nil,如:

if getAdressParts() == nil, nil {
   ...
}

您可以在这里使用示例:

不太简洁,但可以:

if plz, street := getAdressParts(); plz == nil && street == nil {
    // Do stuff
}
这在和中得到了演示


请注意,正如icza指出的,这对
字符串
s(不能是
nil
)没有任何意义,但用于有效测试的语法如上所述。

字符串不能是nil,但我认为您需要这样做

if a, b := getAdressParts(); a == "" && b == "" {
    println("nil")
}

nil
不是
string
类型的有效值,因此即使是像
plz==nil
这样的检查也是编译时错误。是的,很抱歉我的帖子太快了,错过了,同时问题也被更新了耶,但我从这个问题中得到的印象是,这是关于内联
nil
检查的语法,而不是字面上的检查
字符串是否为
nil
。更新的答案,添加便条以防万一。是的,对不起,我正要更新问题,你太快了:)但是答案很好!那a+b==“”
呢?是不是比你的更贵?在a或b不是空的情况下,这似乎更贵,因为它需要一个分配和两个cope。