Sé que puede crear una función anónima, y tienen el compilador inferir su tipo de retorno:¿Es posible especificar el tipo de devolución de una función anónima en Scala?
val x =() => { System.currentTimeMillis }
Sólo por el bien de tipos estáticos, es posible especificar tipo constructivo así su retorno? Creo que haría las cosas mucho más claras.
No estoy seguro a qué se refiere con * que la función en el lado izquierdo cumpla con esa expectativa *, establecer un tipo para el bloque de resultados también asegura que el tipo es correcto, p. 'val x =() => {System.currentTimeMillis}: String' no compila. ¿O quieres decir algo más? –
La respuesta de Geoff tiene la ventaja de que obtiene el tipo completo por adelantado. Si tiene una definición de función larga (varias líneas), es más rápido entender qué está sucediendo si el tipo está al principio. La respuesta de Fabian tiene la ventaja de ser menos repetitiva (especialmente buena para definiciones cortas (de una línea), y más rápida de entender si puedes asimilar todo de una sola mirada). –
Oh, ahora veo el punto de Geoff, su definición de tipo contiene el tipo de entrada, que aquí es '()', y que se comprueba cuando la función '() => System.currentTimeMillis' se asigna a' x'. –