je frappe un peu d'une bizarrerie de la syntaxe de scala Je ne comprends pas vraimentcomportement étrange avec la méthode scala syntaxe
object Board {
def getObjectAt(x:Int, y:Int):Placeable = return locations(x)(y)
}
fonctionne très bien. Mais
object Board {
def getObjectAt(x:Int, y:Int):Placeable {
return locations(x)(y)
}
}
renvoie l'erreur
Board.scala:8: error: illegal start of declaration
return locations(x)(y)
J'ai trouvé des choses qui dit la deuxième forme convainc le compilateur scala que vous essayez de spécifier une extension du type de retour Placeable
. Est-il possible de résoudre ce problème, ou devrais-je simplement éviter de spécifier un type de retour ici?
BTW le mot-clé "retour" est superflu et peut être omis. En l'absence d'une instruction de retour explicite, Scala renvoie la dernière valeur calculée par la méthode. Le style recommandé est d'éviter les méthodes explicites (en particulier les retours multiples). –
duplicata possible de [Quand utiliser le signe égal dans une déclaration de méthode Scala?] (Http://stackoverflow.com/questions/944111/when-to-use-the-equals-sign-in-a-scala-method -déclaration) –