Відповіді:
Вам потрібно створитиArray<Int>
використовуючи Range<Int>
замість литих ІНГ його.
let intArray: [Int] = Array(min...max)
Покладіть хребет в ініт.
let intArray = [Int](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)
}
Ви можете реалізувати інтервали примірників ClosedRange & Range із зменшенням () у таких функціях.
func sumClosedRange(_ n: ClosedRange<Int>) -> Int {
return n.reduce(0, +)
}
sumClosedRange(1...10) // 55
func sumRange(_ n: Range<Int>) -> Int {
return n.reduce(0, +)
}
sumRange(1..<11) // 55