groovy
Ternäre und Elvis-Betreiber
Suche…
Bemerkungen
Der Elvis-Operator wertet basierend auf Groovy-Truth des Bedingungsteils aus.
Standardformular gegen Elvis-Formular
// long form
String sayHello(String name){
"Hello, ${name ? name : 'stranger'}."
}
// elvis
String sayHello(String name){
"Hello, ${name ?: 'stranger'}."
}
Beachten Sie, dass das Format "elvis" den Begriff "true" nicht berücksichtigt, da der ursprüngliche Vergleichswert im Fall "true" verwendet werden soll. Wenn der name
Groovy true
, wird er als Wert des Ausdrucks zurückgegeben.
Verwendung (mit Bedingung) in der Zuordnung
def results = []
(1..4).each{
def what = (it%2) ? 'odd' : 'even'
results << what
}
assert results == ['odd', 'even', 'odd', 'even']
Hier ist die if-Bedingung (in (parentheses)
) etwas komplexer als das bloße Prüfen auf Existenz / Groovy-Truth.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow