回答:
キャストするのではなく、を使用してを作成する必要があります。Array<Int>
Range<Int>
let intArray: [Int] = Array(min...max)
使用する map
let min = 50
let max = 100
let intArray = (min...max).map{$0}
(少なくとも、Swift 3およびXcode 8では)Range<Int>
オブジェクトを直接使用できないのは興味深いことです。
let range: Range<Int> = 1...10
let array: [Int] = Array(range) // Error: "doesn't conform to expected type 'Sequence'"
したがって、前述のように、次のように範囲を手動で「アンラップ」する必要があります。
let array: [Int] = Array(range.lowerBound...range.upperBound)
つまり、リテラルのみを使用できます。
range()
。
Swift 3 / Xcode 8にはCountableRange
便利なタイプがあります:
let range: CountableRange<Int> = -10..<10
let array = Array(range)
print(array)
// prints:
// [-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
これは、直接使用することができますfor
- in
ループ:
for i in range {
print(i)
}