2

请告诉我如何以toString功能方式重写。

代码还可以,但没什么值得骄傲的,里面有 3 个临时变量。

class Field(x: Int, y: Int) {
  val value = init(x,y)
  private def init(x: Int, y: Int) = List.fill(x,y)(new Cell)
  override def toString(): String = {
    val temp = new StringBuilder
    for(i <- value) {
      for(j <- i) {
        temp.append(j.toString())
      }
      temp.append("\n")
    }
    temp.mkString
  }
}

多谢你们!

4

1 回答 1

5

这个怎么样(看马!一行):

override def toString() = value.map(_.mkString).mkString("\n")

有时它让我害怕 Scala 代码的紧凑程度......


顺便说一句,如果您不需要重用init()方法,您可以简单地说:

val value = List.fill(x,y)(new Cell)
于 2012-06-27T20:22:57.507 回答