ด้วย Swift 5 ตามความต้องการของคุณคุณสามารถเลือกหนึ่งใน6 รหัสสนามเด็กเล่นต่อไปนี้เพื่อแก้ไขปัญหาของคุณ
# 1 ใช้ตัวsubscript(_:)
ห้อย
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 ใช้prefix(_:)
วิธีการ
ความซับซ้อน: O (1) ถ้าการรวบรวมสอดคล้องกับRandomAccessCollection
; มิฉะนั้น O ( k ) โดยที่kคือจำนวนองค์ประกอบที่จะเลือกตั้งแต่ต้นการรวบรวม
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 ระบุสำหรับprefix(_:)
:
หากความยาวสูงสุดเกินจำนวนองค์ประกอบในคอลเล็กชันผลลัพธ์จะมีองค์ประกอบทั้งหมดในคอลเล็กชัน
# 3 การใช้prefix(upTo:)
วิธีการ
ความซับซ้อน: 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 ระบุสำหรับprefix(upTo:)
:
การใช้prefix(upTo:)
วิธีการนี้เทียบเท่ากับการใช้ช่วงเปิดครึ่งบางส่วนเป็นตัวห้อยของคอลเล็กชัน prefix(upTo:)
สัญกรณ์ห้อยเป็นที่ต้องการมากกว่า
# 4 ใช้prefix(through:)
วิธีการ
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 ใช้removeSubrange(_:)
วิธีการ
ความซับซ้อน: O ( n ) โดยที่nคือความยาวของคอลเลกชัน
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 ใช้dropLast(_:)
วิธีการ
ความซับซ้อน: O (1) ถ้าการรวบรวมสอดคล้องกับRandomAccessCollection
; มิฉะนั้น O ( k ) โดยที่ k คือจำนวนองค์ประกอบที่จะดรอป
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
Array