groovy
Opérateurs Ternaires et Elvis
Recherche…
Remarques
L'opérateur Elvis évalue en fonction de Groovy-Truth de la partie condition.
Forme standard vs forme Elvis
// long form
String sayHello(String name){
"Hello, ${name ? name : 'stranger'}."
}
// elvis
String sayHello(String name){
"Hello, ${name ?: 'stranger'}."
}
Notez que le format "elvis" omet le terme "true" car la valeur de comparaison d'origine doit être utilisée dans le cas "true". Si name
est Groovy true
, alors il sera renvoyé comme valeur de l'expression.
Utilisation (avec condition) en affectation
def results = []
(1..4).each{
def what = (it%2) ? 'odd' : 'even'
results << what
}
assert results == ['odd', 'even', 'odd', 'even']
Ici, la condition if (parentheses)
est légèrement plus complexe que le simple test de l'existence / Groovy-Truth.
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow