此scala代码不会显示我的结果

时间:2015-05-21 18:23:28

标签: scala

一个月前我刚开始写Scala。然而,我一直在用Java,Javascript和其他一些人写作。 我需要有人告诉我为什么这段代码不会显示move(x,y)方法的结果。即使它成功并且成功运行。

PRINT

1 个答案:

答案 0 :(得分:0)

还要考虑这种方法,每次调用PinPoint时都会创建一个新的move()实例,即使用(不可变)值而不是(可变)变量,

case class PinPoint(x: Int, y: Int) {

  def move(dx: Int, dy: Int) = PinPoint(x+dx, y+dy)

  override def toString() = 
    s"""|Position on horizontal axis is $x
        |Position on vertical axis is $y""".stripMargin
}


object Run {
  def main(args: Array[String]) {
    val pos = PinPoint(20,18);
    println(pos)

    val shiftedPos = pos.move(5,7);
    println(shiftedPos)
  }
}

方法toString()提供了一个多行字符串,其中已插入了班级成员xy

编译和运行它的一种方法,

scalac PinPoint.scala -d PinPoint.jar
scala PinPoint.jar 

等等

Position on horizontal axis is 20
Position on vertical axis is 18
Position on horizontal axis is 25
Position on vertical axis is 25