„Opcjonalny zwrot” Groovy'ego
W Groovy, theinstrukcja return jest opcjonalna, umożliwiając pisanie metod takich jak:
def add(a, b) {
a + b
}
... co dodajea
ib
i zwraca wynik do dzwoniącego.
Zastanawiam się jednak, czym jest semantyka, gdy metoda ma wielokrotne „instrukcje”. Na przykład w Javie możesz mieć:
String append(String a, String b) {
if (a == null) {
return b;
}
return a + b;
}
Może to (hipotetycznie) zostać przetłumaczone na Groovy jak:
def append(a, b) {
if (! a) {
b
}
a + b
}
Jednak w tym przypadku, skąd Groovy to wieb
wewnątrzif
oświadczenie powinno zostać zwrócone? Czy nie? Zakładam, że Groovy nie może po prostu traktować żadnego stwierdzenia, którego wynik nie jest używanyreturn
, prawda? Czy są jakieś jasno zdefiniowane semantyki dotyczące tego, jak zachowuje się w tym przypadku funkcja „opcjonalny zwrot”?