operator ... { associativity precedence } Declarations func ... <Bound : Comparable>(_: Bound, maximum: Bound) Returns a closed range that contains both of its bounds. Use the closed range operator (...) to create a closed range of any type that conforms to the Comparable protocol. This example creates a ClosedRange<Character> from "a" up to, and including, "z". let lowercase = "a"..."z" print(lowercase.contains("z")) // Prints "true" Parameters: minimum: The lower bound for the range. maximum: The upper bound for the range. Declaration func ...<Bound : Comparable>(minimum: Bound, maximum: Bound) -> ClosedRange<Bound> func ... <Bound where Bound : _Strideable & Comparable, Bound.Stride : SignedInteger>(_: Bound, maximum: Bound) Returns a countable closed range that contains both of its bounds. Use the closed range operator (...) to create a closed range of any type that conforms to the Strideable protocol with an associated signed integer Stride type, such as any of the standard library's integer types. This example creates a CountableClosedRange<Int> from zero up to, and including, nine. let singleDigits = 0...9 print(singleDigits.contains(9)) // Prints "true" You can use sequence or collection methods on the singleDigits range. print(singleDigits.count) // Prints "10" print(singleDigits.last) // Prints "9" Parameters: minimum: The lower bound for the range. maximum: The upper bound for the range. Declaration func ...<Bound where Bound : _Strideable & Comparable, Bound.Stride : SignedInteger>(minimum: Bound, maximum: Bound) -> CountableClosedRange<Bound>