我们还需要最后一个改进,之前的 Element 实现不够完善,只支持同样高度和同样宽度的 Element 使用 above 和 beside 函数,比如下面的代码将无法正常工作,因为组合元素的第二行比第一行要长:new ArrayElement(Array("hello")) above new ArrayElement(Array("world!
作为下一步,我们将向 Element 添加显示宽度和高度的方法,height 方法返回 contents 里的行数。width 方法返回第一行的长度,或如果元素没有行记录,返回零。abstract class Element { def contents: Array[String] def height: Int = contents.length def width: Int = if (height == 0) 0 else contents(0).