2016-06-08 67 views

回答

28
let result = Array(array.dropFirst(n)) 

(感謝KPM和WolfLink用於指出let result = array.dropFirst(n)resultArraySlice,其不會如果原始陣列被釋放,則保持有效。)

+0

要小心,這隻會返回一個子序列,即避免n個第一個元素的數組上的特殊視圖。記憶仍然在那裏,掛着。 – KPM

+0

@KPM記憶一定是在那裏掛着。如果它不能如何訪問原始數組? –

+0

在釋放原始數組後,Il_will_仍然存在,因爲子序列仍然保留在整個原始數組中。 – KPM

2

您可以使用範圍切片數組:

let result = array.suffix(3) 

我還是會去用他,因爲dropFirst更直觀/可讀比:

var array = [1,2,3,4,5,6] 
let n = 4 
print(array[n..<array.count]) //[4,5,6] 
+2

這不會是'不再爲我工作了:'不能爲索引'CountableRange ''下標''類型的值。 – Richard

+0

要小心,這隻會返回一個子序列,即避免n個第一個元素的陣列上的特殊視圖。記憶仍然在那裏,掛着。 – KPM

2

略多於約翰遜先生的回答更簡潔suffix