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)
多谢你们!
怎么样(看看马!一行):
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)