J'ai un problème lors de la création de l'instance de la classe case après le chargement des méthodes dans Scala repl.comment utiliser repl pour créer une instance d'une classe case définie dans l'objet
Voici le code.
object Game {
def main(args: Array[String]) {
val player1 = new Player("monu", 344)
val player2 = new Player("pankaj", 78)
declareWinner(player1, player2)
}
def printWinner(p: Player): Unit =
println(p.name + " is the winner!")
def declareWinner(p1: Player, p2: Player): Unit =
if (p1.score > p2.score) printWinner(p1)
else printWinner(p2)
case class Player(name: String, score: Int)
}
Sortie:
scala> :paste Game.scala
Pasting file Game.scala...
defined object Game
scala> val bob = Player("Bob",8)
<console>:7: error: not found: value Player
val bob = Player("Bob",8)
mais il n'y a pas de problème si je supprimer le definiton objet et juste garder les méthodes dans le code comme:
def main(args: Array[String]) {
val player1 = new Player("monu", 344)
val player2 = new Player("pankaj", 78)
declareWinner(player1, player2)
}
def printWinner(p: Player): Unit =
println(p.name + " is the winner!")
def declareWinner(p1: Player, p2: Player): Unit =
if (p1.score > p2.score) printWinner(p1)
else printWinner(p2)
case class Player(name: String, score: Int)
Sortie:
scala> :paste Game.scala
Pasting file Game.scala...
main: (args: Array[String])Unit
printWinner: (p: Player)Unit
declareWinner: (p1: Player, p2: Player)Unit
defined class Player
scala> val bob = Player("Bob",8)
bob: Player = Player(Bob,8)
Il sera vraiment utile si quelqu'un peut suggérer une méthode pour résoudre le problème avec le premier cas.