我是Scala的新手,我正在阅读以下来源的scala:http://docs.scala-lang.org/tutorials/tour/classes
它有以下代码:
class Point(var x: Int, var y: Int) {
def move(dx: Int, dy: Int): Unit = {
x = x + dx
y = y + dy
}
override def toString: String =
"(" + x + ", " + y + ")"
}
object Classes {
def main(args: Array[String]) {
val pt = new Point(1, 2)
println(pt)
pt.move(10, 10)
println(pt)
}
}
输出结果为:
(1, 2)
(11, 12)
我想问一下println(pt)
函数如何打印结果(1,2)
?我们是否应该调用pt.toString()
来打印显示的结果?
答案 0 :(得分:4)
println
超载,接受Any
类型的值(在Predef.scala中):
def println(x: Any) = Console.println(x)
在内心深处,它调用x.toString()
来获取要打印的字符串。