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