заводной способ if (var) fn(var)
Я хочу знать, есть ли какой-нибудь более крутой способ кода ниже:
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 ответа:
Вы могли бы сделать:
params.relationId?.with { rid -> println rid }
И код внутри блока
Тем не менее, я бы сказал, что ваш исходный код более очевиден в своих намерениях, и вам не придется пытаться понять, что он делает, когда вы придете к нему позже; -)with
не будет выполнен, еслиparams.relationId
являетсяnull
...