Я хочу иметь список поиска, который возвращает найденное значение в скобках, если найден или возвращает пустую строку. Я не хочу использовать перечисление.Groovy получает значение карты для элемента и возвращает с круглой скобкой, если найдено else blank
Как это:
def grt = { ['mail': 'Scanned Paper', 'digital': 'Digital Things', 'barcode': 'Some Barcode Matter'].get(it) }
def s = grt('digital') ? "($grt('digital')" : ''
println "Report $s"
Но я хочу сделать это проще и устранить строке «DEF S», так что есть какая-то собрать на конце ГЭТ (это), и все это на одна линия. Я могу сделать Элвиса, но не ставит()
Я могу даже сделать мета-программирования, таких как:
Object.metaClass.prettyString = { delegate ? "($delegate)" : '' }
и затем просто сделать
println "Report $grt('digital').prettyString()"
Там должны быть a вид
.get(it).collect { it ? "($it)" : '' }
но это не работает.
Отлично, это то, что я искал. Метод «с» - это точно ответ. Btw Я изначально использовал [it], но изменил на .get (it), поскольку он более читаем другие. –