Semántica de "retorno opcional" de Groovy
En Groovy, eldeclaración de retorno es opcional, permitiéndote escribir métodos como:
def add(a, b) {
a + b
}
... lo que añadea
yb
y devuelve el resultado a la persona que llama.
Sin embargo, me pregunto qué es la semántica cuando el método tiene múltiples "declaraciones" de retorno. Por ejemplo, en Java puedes tener:
String append(String a, String b) {
if (a == null) {
return b;
}
return a + b;
}
Esto podría (hipotéticamente) ser traducido a Groovy como:
def append(a, b) {
if (! a) {
b
}
a + b
}
Sin embargo, en este caso, ¿cómo sabe Groovy queb
dentro de laif
declaración debe ser devuelto? ¿O no es así? Supongo que Groovy no puede simplemente tratar cualquier declaración cuyo resultado no se use como unreturn
¿correcto? ¿Hay alguna semántica claramente definida sobre cómo se comporta la característica de "retorno opcional" en este caso?