我正在阅读“Scala编程”中的第10章(组合和继承),并且可以解释一下这个表达式是如何构造的以及它是如何工作的?
def toString = contents mkString "\n"
作者的代码清单如下:
abstract class Element{
def contents:Array[String]
def width: Int = if(height==0)0elsecontents(0).length
def height: Int = contents.length
def above(that: Element): Element =
new ArrayElement(this.contents ++ that.contents)
def beside(that: Element): Element=
new ArrayElement(
for(
(line1, line2)<-this.contents zip that.contents
) yield line1+line2
)
override def toString = contents mkString "\n"
}
答案 0 :(得分:1)
您可以查看Array的mkString文档。基本上它会在toString
的每个元素上调用contents
,然后它会在相邻的元素对之间打印分隔符。在您的情况下,分隔符是换行符,因此结果将是一个字符串,其中每个元素contents
都在一个单独的行中。