как преобразовать диапазон в массив
Я попытался:
let min = 50
let max = 100
let intArray:[Int] = (min...max)
получить ошибку Range<Int> is not convertible to [Int]
Я также пробовал:
let intArray:[Int] = [min...max]
и
let intArray:[Int] = (min...max) as [Int]
они тоже не работают.
Поместите Range в init.
источник
Я понял:
Отдавать должное кому-то другому.
источник
делать:
Это должно работать, потому
Array
что инициализатор принимаетSequenceType
иRange
соответствуетSequenceType
.источник
Использовать
map
источник
Интересно, что вы не можете (по крайней мере, с Swift 3 и Xcode 8)
Range<Int>
напрямую использовать объект:Поэтому, как упоминалось ранее, вам нужно вручную "развернуть" диапазон, например:
Т.е. можно использовать только буквальный.
источник
range()
.Начиная с Swift 3 / Xcode 8 есть
CountableRange
тип, который может пригодиться:Он может быть использован непосредственно в
for
-in
петлях:источник
Вы можете реализовать интервалы экземпляров ClosedRange и Range с помощью reduce () в таких функциях.
источник