Làm cách nào để xóa n
thành phần đầu tiên khỏi mảng Int
trong Swift?Xóa phần tử n đầu tiên khỏi mảng Int trong Swift
Ví dụ:
var array = [0, 1, 2, 3, 4, 5, 6]
let n = 4
Mảng kết quả chứa các yếu tố:
[4, 5, 6]
Làm cách nào để xóa n
thành phần đầu tiên khỏi mảng Int
trong Swift?Xóa phần tử n đầu tiên khỏi mảng Int trong Swift
Ví dụ:
var array = [0, 1, 2, 3, 4, 5, 6]
let n = 4
Mảng kết quả chứa các yếu tố:
[4, 5, 6]
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.)
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]
Đ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
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
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
.
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
@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? –
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