for - ShenYj/ShenYj.github.io GitHub Wiki

Swift 中的 for循环

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)
    }
⚠️ **GitHub.com Fallback** ⚠️