for - ShenYj/ShenYj.github.io GitHub Wiki
Swift 去掉了传统的 for(int i = 0; i < nums.count; i ++)
这种写法
采用官方的示例代码
-
遍历集合
let names = ["Anna", "Alex", "Brian", "Jack"] for name in names { print("Hello, \(name)!") }
-
遍历字典
let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4] for (animalName, legCount) in numberOfLegs { print("\(animalName)s have \(legCount) legs") }
-
便捷的遍历方式
for index in 1...5 { print("\(index) times 5 is \(index * 5)") }
-
如果不关心每次遍历的元素,可以忽略
let base = 3 let power = 10 var answer = 1 for _ in 1...power { answer *= base }
-
闭区间: operator (
..<
)let minutes = 60 for tickMark in 0..<minutes { // render the tick mark each minute (60 times) }
-
-
遍历的同时获取索引
let names = ["Anna", "Alex", "Brian", "Jack"] for (index, name) in names.enumerated() { print("\(index) - Hello, \(name)!") }
-
还可以结合
stride(from:to:by:)
和stride(from:through:by:)
跳过集合中的某些元素let minuteInterval = 5 for tickMark in stride(from: 0, to: minutes, by: minuteInterval) { // render the tick mark every 5 minutes (0, 5, 10, 15 ... 45, 50, 55) }
let hours = 12 let hourInterval = 3 for tickMark in stride(from: 3, through: hours, by: hourInterval) { // render the tick mark every 3 hours (3, 6, 9, 12) }