Diferencia práctica entre def f (x: Int) = x + 1 y val f = (x: Int) => x + 1 en Scala

Soy nuevo en Scala y tengo problemas para entender esto. ¿Por qué hay dos sintaxis para el mismo concepto, y ninguna de ellas es más eficiente o más corta en ese sentido?

En Go, los análogos tienen una diferencia práctica: no puede hacer una referencia directa de la lambda asignada a una variable, pero puede hacer referencia a una función con nombre desde cualquier lugar. Scala combina estos dos si lo entiendo correctamente: puede hacer referencia directa a cualquier variable (corríjame si me equivoco).

Tenga en cuenta que esta pregunta no es un duplicado de¿Cuál es la diferencia entre "def" y "val" para definir una función.

Yo sé esodef evalúa la expresión después= cada vez que se hace referencia / llamada, yval sólo una vez. Pero esto es diferente porque la expresión en elval La definición se evalúa como una función.

Tampoco es un duplicado deFunciones vs métodos en Scala.

Esta pregunta se refiere a la sintaxis de Scala y no pregunta directamente sobre la diferencia entre funciones y métodos. Aunque las respuestas pueden ser similares en contenido, sigue siendo valioso aclarar este punto exacto en este sitio.

Respuestas a la pregunta(2)

Su respuesta a la pregunta