implícito tipo Unit
retorno:
def f() {println("ABC")}
explícita tipo Unit
retorno:
def g(): Unit = {println("ABC")}
Tipo de retorno inferirse de la última expresión método, todavía Unit
porque este es el tipo de println
, pero confuso:
def h() = println("ABC")
Todos los métodos anteriores son equivalentes. Preferiría f()
porque la falta de operador =
después de la firma del método solo es suficiente para mí. Use explícitamente : Unit
cuando desee documentar extra el método. La última forma es confusa y en realidad se trata como una advertencia en intellij-idea.
El operador =
es crucial. Si está presente, significa: "devuelva lo que devuelva la última declaración" en el cuerpo del método. Obviamente, no puede usar esta sintaxis para los métodos abstract
. Si no es así, se supone Unit
.
Gracias Tomasz. El código que compartió provoca otra pregunta: ¿por qué se permite omitir el signo '=' en 'f' y' g'? – balteo
Si su función devuelve 'Unidad', puede omitir el signo' = '. Cualquier función define sin un signo '=' devuelve 'Unidad' – Nicolas
Porque en las funciones' Unidad' el '=' es opcional. Sin embargo, es obligatorio para todos los demás tipos, ya que realmente devuelven algo –