0
假設我有在Groovy代碼列表如下:將元素添加到列表中的Groovy
l = [1,2,3,4]
現在,當我使用下面的代碼,它改變了列表:
println(l<<5)
現在我們的名單是[1,2,3,4,5]
但是,當我使用此代碼:
println(l+[6])
列表中沒有任何事情發生(除了打印結尾處爲6) 但是該列表與[1,2,3,4,5]相同
這是怎麼回事?請幫助。 由於
假設我有在Groovy代碼列表如下:將元素添加到列表中的Groovy
l = [1,2,3,4]
現在,當我使用下面的代碼,它改變了列表:
println(l<<5)
現在我們的名單是[1,2,3,4,5]
但是,當我使用此代碼:
println(l+[6])
列表中沒有任何事情發生(除了打印結尾處爲6) 但是該列表與[1,2,3,4,5]相同
這是怎麼回事?請幫助。 由於
println(l<<5)
被追加到5
l
,然後打印l
。
println(l+[6])
是創建具有所有的l
加上所有的內容,內容上是對+
的右手邊(在你的情況下,它只是包含數字6
)的列表清單。然後打印該列表。這並不會改變l
的值或狀態。
'<<'將一個項目追加到列表(修改原始列表),而'+'從兩個列表中創建一個新列表(不修改原始列表中的任何一個) – UnholySheep
要添加到@ UnholySheep的解釋,GroovyDoc List的'<<'(leftShift)是:http://docs.groovy-lang.org/docs/latest/html/groovy-jdk/java/util/List.html#leftShift(java.lang.Object)和'+'(加號)是:http://docs.groovy-lang.org/docs/latest/html/groovy-jdk/java/util/List.html#plus(java.lang.Iterable) – bdkosher
@UnholySheep So我如何知道哪種方法修改了列表,哪些不修改?在使用該方法之前,我是否需要不斷檢查文檔? – saurav