como converter Range em Array
Eu tentei:
let min = 50
let max = 100
let intArray:[Int] = (min...max)
obter erro Range<Int> is not convertible to [Int]
Eu também tentei:
let intArray:[Int] = [min...max]
e
let intArray:[Int] = (min...max) as [Int]
eles também não funcionam.
Coloque o intervalo no init.
fonte
Eu descobri:
Dar crédito a outra pessoa.
fonte
Faz:
Isso deve funcionar porque
Array
tem um inicializador usando aSequenceType
eRange
está em conformidade comSequenceType
.fonte
Usar
map
fonte
Interessante que você não pode (pelo menos, com Swift 3 e Xcode 8) usar o
Range<Int>
objeto diretamente:Portanto, como foi mencionado anteriormente, você precisa "desembrulhar" manualmente seu intervalo como:
Ou seja, você pode usar apenas literal.
fonte
range()
.Desde Swift 3 / Xcode 8, há um
CountableRange
tipo que pode ser útil:Pode ser usado diretamente em
for
-in
loops:fonte
Você pode implementar intervalos de instância ClosedRange e Range com reduce () em funções como esta.
fonte