Je sais que vous pouvez créer une fonction anonyme, et que le compilateur déduisent son type de retour:Est-il possible de spécifier le type de retour d'une fonction anonyme, dans Scala?
val x =() => { System.currentTimeMillis }
Juste pour l'amour de typage statique, est-il possible de spécifier le type de retour aussi bien? Je pense que cela rendrait les choses beaucoup plus claires.
Vous ne savez pas exactement ce que vous entendez par * que la fonction du côté gauche répond à cette attente *, la définition d'un type pour le bloc de résultats garantit également que le type est correct, par ex. 'val x =() => {System.currentTimeMillis}: String' ne compile pas. Ou voulez-vous dire autre chose? –
La réponse de Geoff a l'avantage que vous obtenez le type complet à l'avant. Si vous avez une longue définition de fonction (multiligne), il est plus rapide de comprendre ce qui se passe si le type est au début. La réponse de Fabian a l'avantage d'être moins répétitive (particulièrement bonne pour les définitions courtes (une ligne), et plus rapide à comprendre si vous pouvez tout graver en un coup d'œil). –
Oh, maintenant je vois le point de Geoff, sa définition de type contient le type d'entrée, qui est ici '()', et qui est vérifié lorsque la fonction '() => System.currentTimeMillis' est assignée à' x'. –