Se puede definir un método Scala de 0-arity con o sin paréntesis ()
. Esto se usa para indicar al usuario que el método tiene algún tipo de efecto secundario (como imprimir para eliminar o destruir datos), a diferencia del que está fuera, que luego se puede implementar como val
.
Ver Programming in Scala:
Tales métodos sin parámetros son bastante comunes en Scala. Por el contrario, los métodos definidos con paréntesis vacíos, como def height(): Int, se llaman métodos empty-paren. La convención recomendada es usar un método sin parámetros siempre que no haya parámetros y el método accede al estado mutable solo leyendo los campos del objeto que lo contiene (en particular, no cambia el estado mutable).
Esta convención es compatible con el principio de acceso uniforme [...]
En resumen, se animó estilo en Scala para definir métodos que tengan ningún parámetro y no tienen efectos secundarios como métodos sin parámetros, es decir, dejando fuera de la paréntesis vacíos. Por otro lado, nunca debe definir un método que tenga efectos secundarios sin paréntesis, porque las invocaciones de ese método se verían como una selección de campo.
@MatthewFarwell No creo que la pregunta vinculada responda a la pregunta de parens. –
Y vea también http://stackoverflow.com/questions/6939908/scala-functions-with-no-arguments –
Pregunta http://stackoverflow.com/questions/7409502/what-is-the-difference-between-def -foo-and-def-foo-in-scala es exactamente lo mismo. – paradigmatic