Ich möchte eine Lookup-Liste, die den gefundenen Wert in Klammern zurückgibt, wenn gefunden, oder sonst leere Zeichenfolge zurückgeben. Ich möchte keine Enum verwenden.Groovy get map Wert für das Element und return mit Klammern, wenn sonst leer gefunden
So:
def grt = { ['mail': 'Scanned Paper', 'digital': 'Digital Things', 'barcode': 'Some Barcode Matter'].get(it) }
def s = grt('digital') ? "($grt('digital')" : ''
println "Report $s"
Aber ich will es einfacher machen und die Beseitigung des ‚def s‘ Linie, so dass es eine Art ist am Ende get sammeln von (es) und es ist alles auf eine Linie. Ich kann ein elvis tun, aber das ist nicht gesetzt()
Ich kann sogar Meta-Programmierung tun, wie:
Object.metaClass.prettyString = { delegate ? "($delegate)" : '' }
und dann einfach tun müssen
println "Report $grt('digital').prettyString()"
Es muss sein eine Art
.get(it).collect { it ? "($it)" : '' }
aber das funktioniert nicht.
Perfekt, das ist, was ich gesucht habe. Die 'mit' Methode ist genau die Antwort. Übrigens habe ich ursprünglich [it] verwendet, bin aber zu .get (it) gewechselt, da es für andere besser lesbar ist. –