bagaimana mengkonversi Range ke Array
Saya mencoba:
let min = 50
let max = 100
let intArray:[Int] = (min...max)
mendapatkan kesalahan Range<Int> is not convertible to [Int]
Saya juga mencoba:
let intArray:[Int] = [min...max]
dan
let intArray:[Int] = (min...max) as [Int]
mereka juga tidak bekerja.
Letakkan Range di init.
sumber
Saya menemukan jawabannya:
Memberi penghargaan kepada orang lain.
sumber
melakukan:
Ini harus bekerja karena
Array
memiliki penginisialisasi yang mengambilSequenceType
danRange
sesuai denganSequenceType
.sumber
Menggunakan
map
sumber
Menarik bahwa Anda tidak dapat (setidaknya, dengan Swift 3 dan Xcode 8) menggunakan
Range<Int>
objek secara langsung:Oleh karena itu, seperti yang disebutkan sebelumnya, Anda perlu "membuka" secara manual rentang Anda seperti:
Yaitu, Anda hanya dapat menggunakan literal.
sumber
range()
.Karena Swift 3 / Xcode 8 ada
CountableRange
tipe, yang bisa berguna:Dapat digunakan langsung di
for
-in
loop:sumber
Anda bisa mengimplementasikan interval instance ClosedRange & Range dengan reduce () dalam fungsi seperti ini.
sumber