comment convertir Range en Array
J'ai essayé:
let min = 50
let max = 100
let intArray:[Int] = (min...max)
obtenir une erreur Range<Int> is not convertible to [Int]
J'ai aussi essayé:
let intArray:[Int] = [min...max]
et
let intArray:[Int] = (min...max) as [Int]
ils ne fonctionnent pas non plus.
Mettez la plage dans le fichier init.
la source
Je l'ai compris:
Donner du crédit à quelqu'un d'autre.
la source
faire:
Cela devrait fonctionner car
Array
un initialiseur prend aSequenceType
et seRange
conforme àSequenceType
.la source
Utilisation
map
la source
Intéressant que vous ne puissiez pas (du moins, avec Swift 3 et Xcode 8) utiliser l'
Range<Int>
objet directement:Par conséquent, comme cela a été mentionné précédemment, vous devez "déballer" manuellement votre plage comme:
C'est-à-dire que vous ne pouvez utiliser que littéral.
la source
range()
.Depuis Swift 3 / Xcode 8, il existe un
CountableRange
type, qui peut être pratique:Il peut être utilisé directement dans
for
-in
boucles:la source
Vous pouvez implémenter des intervalles d'instance ClosedRange & Range avec reduction () dans des fonctions comme celle-ci.
la source