猫王操作员在 GString in Groovy


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 : ''}"

相关内容

  • 没有找到相关文章