douzong2206 2018-02-07 15:16
浏览 75
已采纳

Go中的多个nil,nil ...检测

In go you can have several returns like:

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")
    }

}

is there any way to check both inline for nil like:

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

you can play with example here: https://play.golang.org/p/xbHCxl_AJyw

  • 写回答

2条回答 默认 最新

  • donglu5235 2018-02-07 15:17
    关注

    Not quite that succinctly, but yes:

    if plz, street := getAdressParts(); plz == nil && street == nil {
        // Do stuff
    }
    

    This is demonstrated in the Go tour and the Go spec.

    Note as icza points out, this doesn't make any sense for strings (which can't be nil), but the syntax you'd use for a valid test is as above.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试