String someMethod(def columnOne, int number, columnName){
return columnOne + '-' + number + "${ -> (columnName == '') ?: '-' + columnName}"
}
当我打电话给:
someMethod('one', 2, '')
我得到以下结果:
one-2true
为什么闭包返回true
而不是''
或-somehting
答案 0 :(得分:4)
你不需要这里的猫王,而是普通的三元,就像这样:
(columnName ? '-'+columnName : '')
猫王是x ?: y
=>的缩写。 x ? x : y
以及columnName==''
的结果只是true
,这将打印出来。
答案 1 :(得分:1)
充分利用groovy的GString。字符串连接很昂贵。
return "$columnOne-$number${columnName ? '-' + columnName : ''}"