Swift连接两个Ranges

Ste*_*Kuo 4 ios swift

我有两个范围:

let r1: Range<Int> = 1...3
let r2: Range<Int> = 10...12
Run Code Online (Sandbox Code Playgroud)

是否有一种Swift方式来连接/连接两个范围,以便我可以在一个for循环中迭代它们两个?

for i in joined_r1_and_r2 {
    print(i)
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

1
2
3
10
11
12
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 7

您可以创建一个嵌套数组,然后加入它们.

// swift 3:
for i in [r1, r2].joined() {
    print(i)
}
Run Code Online (Sandbox Code Playgroud)

joined()这里的结果是一个FlattenBidirectionalCollection意味着它不会分配另一个数组.

(如果你坚持使用Swift 2,请使用.flatten()而不是.joined().)