Swift For-in循环

示例

该换的循环可以让你迭代任何序列。

遍历一个范围

您可以遍历半开和封闭范围:

for i in 0..<3 {

    print(i)

}

for i in 0...2 {

    print(i)

}

// 都打印:

// 0

// 1个个

// 2

遍历数组或集合

let names = ["James", "Emily", "Miles"]

for name in names {

   print(name)

}

// 詹姆士

// 艾米莉

// 迈尔斯

2.1 2.2

如果需要数组中每个元素的索引,则可以使用enumerate()on方法SequenceType。

for (index, name) in names.enumerate() {

   print("The index of \(name) is \(index).")

}

// 詹姆斯的索引是0。

// 艾米丽的指数是1。

// 英里的索引是2。

enumerate()返回一个包含Int从0开始的连续s元素对的惰性序列。因此,对于数组,这些数字将对应于每个元素的给定索引-但是,其他类型的集合可能不是这种情况。

3.0

在Swift 3中,enumerate()已重命名为enumerated():

for (index, name) in names.enumerated() {

   print("The index of \(name) is \(index).")

}

遍历字典

let ages = ["James": 29, "Emily": 24]

for (name, age) in ages {

    print(name, "is", age, "岁。")

}

// 艾米莉 is 24 岁。

// 詹姆士 is 29 岁。

反向迭代

2.1 2.2

您可以使用reverse()on方法SequenceType来反向迭代任何序列:

for i in (0..<3).reverse() {

    print(i)

}

for i in (0...2).reverse() {

    print(i)

}

// 都打印:

// 2

// 1个个

// 0

let names = ["James", "Emily", "Miles"]

for name in names.reverse() {

    print(name)

}

// 迈尔斯

// 艾米莉

// 詹姆士

3.0

在Swift 3中,reverse()已重命名为reversed():

for i in (0..<3).reversed() {

    print(i)

}

使用自定义步幅迭代范围

2.1 2.2

通过使用上的stride(_:_:)方法,Strideable您可以使用自定义跨度在范围内进行迭代:

for i in 4.stride(to: 0, by: -2) {

    print(i)

}

// 4

// 2

for i in 4.stride(through: 0, by: -2) {

    print(i)

}

// 4

// 2

// 0

1.2 3.0

在Swift 3中,上的stride(_:_:)方法Stridable已被全局stride(_:_:_:)函数取代:

for i in stride(from: 4, to: 0, by: -2) {

    print(i)

}

for i in stride(from: 4, through: 0, by: -2) {

    print(i)

}

以上是 Swift For-in循环 的全部内容, 来源链接: utcz.com/z/350092.html

回到顶部