Est-il possible de spécifier une fonction anonyme de type de retour, à la Scala?
Je sais que vous pouvez créer une fonction anonyme, et le compilateur en déduire son type de retour:
val x = () => { System.currentTimeMillis }
Juste pour le typage statique en soi, est-il possible de spécifier son type de retour ainsi? Je pense que ce serait rendre les choses plus clairement.
Vous devez vous connecter pour publier un commentaire.
À mon avis, si vous êtes en essayant de rendre les choses plus claires, il est préférable de document de l'attente sur l'identificateur x par l'ajout d'une annotation de type, plutôt que le résultat de la fonction.
Alors le compilateur s'assurer que la fonction sur le côté droit répond à cette attente.
val x = () => { System.currentTimeMillis } : String
ne compile pas. Ou voulez-vous dire quelque chose d'autre?()
, et tout cela est activée lorsque la fonction() => System.currentTimeMillis
est attribué àx
.Function0[Long]
, bien que je préfère la notation.()
dans la fonction anonyme de définition? Ou, sont deux fonctions anonymes être définis en même temps? Désolé pour le necroposting.val x = () => Long = {blah}
serait un plus intuitive de la syntaxe. Merci pour la réponse!Fabian a donné le moyen simple, mais certains d'autres moyens si vous aimez la microgestion de sucre comprennent:
ou
ou même
puisque dans la plupart des situations, il ne fait aucune différence si elle descend de la Fonction, seulement si elle a appliquer.