考慮下面的語句:如何指定範圍到列表的結尾?
process.text.readLines [3 .. < -1]
好像它應該工作。實質上,剝離數組的前兩個元素。但是,範圍運算符會被結尾-1所迷惑,因爲它小於-1。您可以通過將數組存儲爲變量並用size()替換-1來輕鬆解決此問題,但需要額外的一行和變量的定義。任何其他想法如何輕鬆表達這一點?
考慮下面的語句:如何指定範圍到列表的結尾?
process.text.readLines [3 .. < -1]
好像它應該工作。實質上,剝離數組的前兩個元素。但是,範圍運算符會被結尾-1所迷惑,因爲它小於-1。您可以通過將數組存儲爲變量並用size()替換-1來輕鬆解決此問題,但需要額外的一行和變量的定義。任何其他想法如何輕鬆表達這一點?
我相信你可以這樣做:
process.text.readLines()[ 2..-1 ]
或:
process.text.readLines().drop(2)
這也將這樣的伎倆:
process.text.readLines().with { it[2..size()-1] }
這比簡單地調用drop
如上建議的時間越長,但根據更大的背景可能會稍微好一點。 with
可讓您避開定義新變量。
我相信你仍然需要大小的括號:'它[2 ..
也是一個很好的解決方案。我一直忘記()用於避免變量聲明的值。 – dromodel
好吧,所以這是「<」運算符的問題。這似乎會生成[2,1,0,-1]。不應該2 .. < - 1生成[2,1,0]呢?這是一個錯誤嗎? – dromodel