Với Swift 5, theo nhu cầu của bạn, bạn có thể chọn một trong 6 mã Playground sau để giải quyết vấn đề của mình.
# 1. Sử dụng subscript(_:)
chỉ mục
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let arraySlice = array[..<5]
//let arraySlice = array[0..<5] // also works
//let arraySlice = array[0...4] // also works
//let arraySlice = array[...4] // also works
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
# 2. Sử dụng prefix(_:)
phương pháp
Độ phức tạp: O (1) nếu bộ sưu tập phù hợp với RandomAccessCollection
; mặt khác, O ( k ), trong đó k là số phần tử được chọn từ đầu bộ sưu tập.
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let arraySlice = array.prefix(5)
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
Apple tuyên bố prefix(_:)
:
Nếu độ dài tối đa vượt quá số phần tử trong bộ sưu tập, kết quả chứa tất cả các phần tử trong bộ sưu tập.
# 3. Sử dụng prefix(upTo:)
phương pháp
Độ phức tạp: O (1)
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let arraySlice = array.prefix(upTo: 5)
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
Apple tuyên bố prefix(upTo:)
:
Sử dụng prefix(upTo:)
phương thức này tương đương với việc sử dụng phạm vi nửa mở một phần làm chỉ mục của bộ sưu tập. Các ký hiệu đăng ký được ưa thích hơn prefix(upTo:)
.
#4. Sử dụng prefix(through:)
phương pháp
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let arraySlice = array.prefix(through: 4)
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
# 5. Sử dụng removeSubrange(_:)
phương pháp
Độ phức tạp: O ( n ), trong đó n là chiều dài của bộ sưu tập.
var array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
array.removeSubrange(5...)
print(array) // prints: ["A", "B", "C", "D", "E"]
# 6. Sử dụng dropLast(_:)
phương pháp
Độ phức tạp: O (1) nếu bộ sưu tập phù hợp với RandomAccessCollection
; mặt khác, O ( k ), trong đó k là số phần tử được thả.
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let distance = array.distance(from: 5, to: array.endIndex)
let arraySlice = array.dropLast(distance)
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
n
phần tử đầu tiên của anArray
.