一个月前我刚开始写Scala。然而,我一直在用Java,Javascript和其他一些人写作。 我需要有人告诉我为什么这段代码不会显示move(x,y)方法的结果。即使它成功并且成功运行。
PRINT
答案 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()
提供了一个多行字符串,其中已插入了班级成员x
和y
。
编译和运行它的一种方法,
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