# 1. Menggunakan Arraysubskrip dengan rentang
Dengan Swift 5, saat Anda menulis…
let newNumbers = numbers[0...position]
… newNumbersBukanlah tipe Array<Int>tapi tipe ArraySlice<Int>. Itu karena Array's subscript(_:)kembali sebuah ArraySlice<Element>itu, menurut Apple, hadiah pandangan ke penyimpanan beberapa array yang lebih besar.
Selain itu Swift juga menyediakan Arraysebuah penginisialisasi bernama init(_:)yang memungkinkan kita membuat array baru dari a sequence(termasuk ArraySlice).
Oleh karena itu, Anda dapat menggunakan subscript(_:)with init(_:)untuk mendapatkan array baru dari n elemen pertama dari sebuah array:
let array = Array(10...14) // [10, 11, 12, 13, 14]
let arraySlice = array[0..<3] // using Range
//let arraySlice = array[0...2] // using ClosedRange also works
//let arraySlice = array[..<3] // using PartialRangeUpTo also works
//let arraySlice = array[...2] // using PartialRangeThrough also works
let newArray = Array(arraySlice)
print(newArray) // prints [10, 11, 12]
# 2. Menggunakan Array's prefix(_:)metode
Swift menyediakan prefix(_:)metode untuk tipe yang sesuai dengan Collectionprotokol (termasuk Array). prefix(_:)memiliki deklarasi berikut:
func prefix(_ maxLength: Int) -> ArraySlice<Element>
Mengembalikan sebuah urutan, hingga panjang maxLength, yang berisi elemen awal.
Apple juga menyatakan:
Jika panjang maksimum melebihi jumlah elemen dalam koleksi, hasilnya berisi semua elemen dalam koleksi.
Oleh karena itu, sebagai alternatif dari contoh sebelumnya, Anda dapat menggunakan kode berikut untuk membuat array baru dari elemen pertama dari array lain:
let array = Array(10...14) // [10, 11, 12, 13, 14]
let arraySlice = array.prefix(3)
let newArray = Array(arraySlice)
print(newArray) // prints [10, 11, 12]