What kind of type have the range in for loop?
ios, range, swift
Solution
If you put a breakpoint after defining `let range = 1..<10`, you will see that it's actually not a `Range` structure, but rater a `CountableRange` (or `CountableClosedRange` for 0...10)
Docs: CountableRange, CountableClosedRange
Functions:
func printRange(range: CountableRange<Int>) {
for i in range { print ("\(i)") }
}
func printRange(range: CountableClosedRange<Int>) {
for i in range { print ("\(i)") }
}
Usage:
let range = 1..<10
printRange(range: range)
let closedRange = 1...10
printRange(range: closedRange)
Generic function:
Since both structs conform to `RandomAccessCollection` protocol, you can implement only one function like this:
func printRange<R>(range: R) where R: RandomAccessCollection {
for i in range { print ("\(i)") }
}
This article about ranges in Swift 3 may also be useful.
Problem
When we write the following: ``` for i in 1...10 { //do stuff } ``` I want know what type have the range `1...10` to use it in function call for example: ``` myFunc(1...10) ```