Je veux être en mesure d'écrire du code commecompilateur Scala dit ma méthode est récursive dans le cas où implicits et classe anonyme est utilisé
10 times {
doSomething
}
Je pensais que je pouvais le faire avec implicits.
Quand j'exécute le code suivant dans la Scala REPL il se définit correctement
scala> implicit def intToMyRichInt(count: Int) = {
| new {
| def times(f: => Unit) = {
| 1 to count foreach { _ => f }
| }
| }
| }
Cependant quand je tente de compiler,
object Test {
implicit def intToMyRichInt(count: Int) = {
new {
def times(f: => Unit) = {
1 to count foreach { _ => f }
}
}
}
il échoue avec l'erreur
error: recursive method intToMyRichInt needs result type
1 to count foreach { _ => f }
Quelle est la différence? Qu'est-ce que je fais mal?
Le '}' manquant après le corps de 'times' est une erreur de copier-coller? Parce que, à part ça, ça compile bien ici. –