4

考虑以下语句:

process.text.readLines[3..<-1]

似乎它应该工作。本质上,去掉数组的前两个元素。但是,范围运算符对结尾 -1 感到困惑,因为它小于 -1。您可以通过将数组存储为变量并将 -1 替换为 size() 来轻松解决此问题,但这需要额外的一行和变量的定义。还有其他想法如何轻松表达吗?

4

2 回答 2

8

我相信你可以这样做:

process.text.readLines()[ 2..-1 ]

或者:

process.text.readLines().drop( 2 )
于 2012-12-12T21:50:19.437 回答
2

这也可以解决问题:

process.text.readLines().with { it[2..size()-1] }

它比drop上面建议的简单调用要长,但根据更大的上下文,它可能会更好读一些。with让您绕过定义一个新变量。

于 2012-12-13T06:04:24.333 回答