groovy
Тернар и Элвис Операторы
Поиск…
замечания
Оператор Элвиса оценивает на основе Groovy-Truth состояния-части.
Стандартная форма против формы Элвиса
// long form
String sayHello(String name){
"Hello, ${name ? name : 'stranger'}."
}
// elvis
String sayHello(String name){
"Hello, ${name ?: 'stranger'}."
}
Обратите внимание, что формат «elvis» опускает «истинный» термин, потому что исходное значение сравнения должно использоваться в «истинном» случае. Если name
Groovy true
, то оно будет возвращено как значение выражения.
Использование (с условием) при назначении
def results = []
(1..4).each{
def what = (it%2) ? 'odd' : 'even'
results << what
}
assert results == ['odd', 'even', 'odd', 'even']
Здесь if-условие (в (parentheses)
немного сложнее, чем просто тестирование на существование / Groovy-Truth.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow