for
常见通过索引遍历的,都是针对有序的,数组和字符串
1、没有单独的for遍历
Q:为什么没有像C 语言那样的for的索引方式遍历呢?
A: 因为在for...in 里面有更加简单的方式使用索引和对应的值了,所以这个单独的方式没有必要了。
2、for..in 遍历
2.1 遍历有序集合
1)直接遍历值
2)通过索引遍历值
3)同时获取索引和元素 ,使用 enumerated()
enumerated()
4)范围遍历(Range)
使用 for-in
结合范围操作符来遍历数值区间。
5)步长遍历索引 stride(from:to:by:)
按一定步长遍历索引,从而访问特定索引位置的元素。
2.2便利无序集合
1) 遍历字典(无序集合)
3、forEach方法
数组、字典等集合类型还支持 forEach
方法,允许你通过闭包遍历集合的每个元素。
Q: 有了for.in 为什么还需要forEach?
A: forEach
语法更加简洁,尤其在简单的遍历操作中十分常用。
Q: 如果这样,那么单独的for也不应该去掉?
A:
1、for和for..in 是包含关系,并且for..in比for更加简洁, for..in 可以索引遍历,可以索引+值遍历。
2、for..in和forEach没有包含关系,for..in替代我们传统的for遍历,而forEach是更加适应了函数式链式编程,更加简洁的高阶函数。
for..in 和forEach在语法、用法 各有不同:
1. 简洁性和函数式编程风格
forEach
是 Swift 中函数式编程的一部分。
它使用闭包来处理集合中的每个元素,代码更简洁并且符合函数式编程的风格。
相比于 for-in
,forEach
可以在一行代码中完成遍历,尤其适合简单的操作。
在某些场景下更符合现代编程的简洁需求,特别是在处理链式操作时。
2. 无返回值和不可提前退出
forEach
不允许 break
或 continue
,即你无法在中途停止循环。
for..in 适合中间有判断退出停止循环
forEach 不需要跳出的场景
3. 更适合链式调用
forEach
常用于与其他函数式方法(如 map
、filter
)结合使用,使代码看起来更加流畅和易读。
4. 代码风格选择
选择 for-in
或 forEach
很大程度上取决于个人偏好和代码风格。对于一些开发者来说,for-in
更加直观和可读,尤其是在处理复杂逻辑时。而 forEach
更适合需要简洁代码的场景。
Last updated