Scala中的toString函数

时间:2016-10-16 20:13:49

标签: scala

我是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()来打印显示的结果?

1 个答案:

答案 0 :(得分:4)

println超载,接受Any类型的值(在Predef.scala中):

def println(x: Any) = Console.println(x)

在内心深处,它调用x.toString()来获取要打印的字符串。