4
Groovy是否有安全的範圍運算符?Groovy的安全範圍操作員?
舉例來說,如果我有,
[1,2,3][0..10]
的Groovy將拋出一個java.lang.IndexOutOfBoundsException:
是否有訪問此範圍內的指數安全的方式?或者,我是否必須在運行範圍之前檢查集合的大小?
Groovy是否有安全的範圍運算符?Groovy的安全範圍操作員?
舉例來說,如果我有,
[1,2,3][0..10]
的Groovy將拋出一個java.lang.IndexOutOfBoundsException:
是否有訪問此範圍內的指數安全的方式?或者,我是否必須在運行範圍之前檢查集合的大小?
您可以使用take(n)
,它允許你最多需要的物品的具體數量,沒有錯誤,如果有在收集太少:
def input = [1,2,3]
def result = input.take(10)
assert result == [1,2,3]
input = [1,2,3,4,5]
result = input.take(4)
assert result == [1,2,3,4]
如果你需要在一個偏移值,可以啓動使用drop(n)
,這確實不修改原始集合:
def input = [1,2,3,4,5]
def result = input.drop(2).take(2)
assert result == [3,4]
這些都是對集合的大小的保險箱。如果上一個示例中的列表太小,則集合中可能只有一個或零個項目。
我忘了提及這些方法是在Groovy 1.8.1 – OverZealous
+1中添加的。另外:'def result = input.drop 2 take 2' – Will