if(var)fn(var)的groovy方式

时间:2011-05-20 14:35:15

标签: grails groovy

我想知道下面是否有任何更常用的代码方式:

def dataList = OperLog.createCriteria().list(max:params.max, offset:params.offset) {
    if(params.relationId){
      eq('relationId',params.long('relationId'))
    }
    order(params.sort, params.order)
}

例如someVar?.someMethod 有什么糖不要称之为params为null的方法

2 个答案:

答案 0 :(得分:5)

你可以这样做:

params.relationId?.with { rid ->
  println rid
}

如果withparams.relationId,则null块内的代码将不会被执行...

但是,我认为你的原始代码在其意图中更为明显,并且你不必在以后审查它时尝试弄清楚它正在做什么; - )

答案 1 :(得分:0)

这有什么更古怪的风格吗?

def list = [vo1,vo2,vo3]
list.each{
   someMethod(it)
}

就像

一样
list*.toString()