scala code functional-programming facelift:从List [List [myClass.toString]]结构中提取String

Lor*_*rai 2 iteration functional-programming scala

请告诉我如何以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
  }
}
Run Code Online (Sandbox Code Playgroud)

多谢你们!

Tom*_*icz 5

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

override def toString() = value.map(_.mkString).mkString("\n")
Run Code Online (Sandbox Code Playgroud)

有时它会让我感到害怕Scala代码的紧凑性......


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

val value = List.fill(x,y)(new Cell)
Run Code Online (Sandbox Code Playgroud)