String someMethod(def columnOne, int number, columnName){
return columnOne + '-' + number + "${ -> (columnName == '') ?: '-' + columnName}"
}
当我用:
someMethod('one', 2, '')
我得到以下结果:
one-2true
为什么闭包返回true
而不是''
或-somehting
这里不需要猫王,而是需要常规的三元,像这样:
(columnName ? '-'+columnName : '')
猫王是 x ?: y
=> x ? x : y
的缩写,然后columnName==''
的结果只是true
,这将打印。
充分利用时髦的 GString。字符串连接很昂贵。
return "$columnOne-$number${columnName ? '-' + columnName : ''}"