Семантика Groovy «необязательный возврат»
В Groovy,оператор возврата не является обязательным, что позволяет вам писать методы, такие как:
def add(a, b) {
a + b
}
... который добавляетa
а такжеb
и возвращает результат вызывающей стороне.
Однако я'мне интересно, что такое семантика, когда метод имеет множественный возврат "заявления", Например, в Java вы можете иметь:
String append(String a, String b) {
if (a == null) {
return b;
}
return a + b;
}
Это может (гипотетически) быть переведено на Groovy как:
def append(a, b) {
if (! a) {
b
}
a + b
}
Тем не менее, в этом случае, как Groovy знает, чтоb
внутриif
заявление должно быть возвращено? Или нет? Я предполагаю, что Groovy не может просто рассматривать любое утверждение, результат которого не используется, какreturn
, правильный? Есть ли четко определенная семантика для того, какнеобязательный возврат особенность ведет себя в этом случае?