如何在Golang中正确使用OR运算符

时间:2014-07-27 09:24:33

标签: go

如何在Golang中简化

var planningDate string
  date, ok := data["planningDate"]
  if !ok {
    planningDate = util.TimeStamp()
  } else {
    planningDate = date
  }

感谢名单

2 个答案:

答案 0 :(得分:3)

我认为没有办法在一行中执行此操作,因为Go中没有ternary operator。您不能使用|,因为操作数不是数字。但是,这里有三行解决方案(假设date只是一个临时变量):

planningDate, ok := data["planningDate"]
if !ok {
    planningDate = util.TimeStamp()
}

答案 1 :(得分:2)

您可以执行以下操作:

func T(exp bool, a, b interface{}) interface{} {
    if exp {
        return a
    }
    return b
}

并随时使用它,就像三元运算符一样:

planningDate = T((ok), date, util.TimeStamp())