Scala replのメソッドをロードした後で、ケースクラスのインスタンスを作成する際に問題があります。replを使用してオブジェクトに定義されたケースクラスのインスタンスを作成する方法
ここにコードがあります。
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)
}
出力:
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)
が、私は、オブジェクトdefinitonを削除し、同じように、コード内のメソッドを保持している場合は問題ありません。
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)
が出力:
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)
誰かが最初のケースで問題を解決する方法を提案できれば、本当に役に立ちます。