10 votes

Litéral de fonction avec paramètre d'appel par nom

Comment définir une fonction anonyme avec des paramètres call-by-name en scala ?

J'ai essayé ce qui suit :

val fun = (x: Boolean, y: =>Int) => if(x) y else 0

Cela fonctionne bien avec les appels par valeur, mais pas avec les appels par nom. Pourquoi ?

19voto

Daniel C. Sobral Points 159554

C'est possible, mais d'une manière légèrement différente : déclarez le type séparément des paramètres :

val fun: (Boolean, => Int) => Int = (x, y) => if (x) y else 0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X