tutorial software renault examples scala

software - scala vs java



Diferencia entre función con paréntesis y sin (1)

Un método Scala de 0-aridad se puede definir 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 en datos estándar o destruir datos), en oposición a uno sin, que luego se puede implementar como val .

Ver Programación en 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 apoya el principio de acceso uniforme [...]

Para resumir, se alienta el estilo en Scala para definir métodos que no toman parámetros y no tienen efectos secundarios como métodos sin parámetros, es decir, dejando fuera el paréntesis vacío. 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.

Posible duplicado:
Funciones vs métodos en Scala
¿Cuál es la diferencia entre def foo = {} y def foo () = {} en Scala?

En scala podemos definir.

def foo():Unit = println ("hello")

o

def foo:Unit = println ("hello")

Sé que no son lo mismo, pero ¿cuál es la diferencia y cuál debería usarse cuándo?

Si esto ha sido respondido antes, por favor, apúntame a ese enlace.