jak przekonwertować Range na Array
Próbowałem:
let min = 50
let max = 100
let intArray:[Int] = (min...max)
uzyskać błąd Range<Int> is not convertible to [Int]
Próbowałem też:
let intArray:[Int] = [min...max]
i
let intArray:[Int] = (min...max) as [Int]
one też nie działają.
Umieść Range w pliku init.
źródło
Rozgryzłem to:
Kredytowanie kogoś innego.
źródło
robić:
Powinno to zadziałać, ponieważ
Array
inicjator przyjmuje aSequenceType
iRange
jest zgodny zSequenceType
.źródło
Posługiwać się
map
źródło
Ciekawe, że nie możesz (przynajmniej w Swift 3 i Xcode 8) używać
Range<Int>
obiektu bezpośrednio:Dlatego, jak wspomniano wcześniej, musisz ręcznie „rozpakować” swój zakres, na przykład:
Oznacza to, że możesz używać tylko dosłownego.
źródło
range()
.Od Swift 3 / Xcode 8 istnieje
CountableRange
typ, który może być przydatny:Może być stosowany bezpośrednio w
for
-in
pętlach:źródło
Możesz zaimplementować interwały instancji ClosedRange & Range za pomocą redukuj () w funkcjach takich jak ta.
źródło