В 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
, правильно? Есть ли четко определенная семантика того, как ведет себя функция "необязательного возвращения" в этом случае?