2016-06-08 13 views

Trả lời

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

(Nhờ KPM và WolfLink đã chỉ ra rằng let result = array.dropFirst(n) bộ result một ArraySlice đó sẽ không vẫn hợp lệ nếu mảng ban đầu được phát hành.)

+0

Hãy cẩn thận, điều này sẽ chỉ trả lại một chuỗi, tức là chế độ xem đặc biệt trên mảng của bạn tránh được các phần tử đầu tiên. Ký ức sẽ vẫn còn đó, treo xung quanh. – KPM

+0

@KPM Bộ nhớ thực sự phải ở đó treo xung quanh. Nếu nó không làm thế nào chúng ta có thể truy cập vào mảng ban đầu? –

+0

Il _will_ vẫn ở đó sau khi bạn giải phóng mảng ban đầu, bởi vì chuỗi tiếp theo vẫn giữ nguyên toàn bộ mảng ban đầu. – KPM

2

Bạn có thể sử dụng một loạt để lát Array:

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

Điều này không ' t làm việc cho tôi nữa: 'Không thể subscript một giá trị của loại '[String]' với một chỉ số của 'CountableRange ''. – Richard

+0

Hãy cẩn thận, điều này sẽ chỉ trả lại một chuỗi, tức là một chế độ xem đặc biệt trên mảng của bạn tránh các phần tử đầu tiên. Ký ức sẽ vẫn còn đó, treo xung quanh. – KPM

2

Hơi hơn gọn gàng hơn của ông Johnson câu trả lời:

let result = array.suffix(3) 

tôi vẫn muốn đi với mình vì dropFirst là trực quan hơn/dễ đọc hơn suffix.

Các vấn đề liên quan