Swift_Colletion
Array
swift中的array
- Swift 中的数组可否被修改完全取决于
let
和var
关键字 - 由于
array
中的copy on write
特性,在复制数组时,属于浅复制,仍然共用一个内存地址。只有当修改其中一个array
时才会真正的把两个array
分开,此时才会出现两个array
NSArray
-
数组可否被修改是通过
NSArray
,NSMutableArray
两个类型决定的 -
NSArray
,NSMutableArray
都是类对象,复制它们执行的是引用语义 -
当我们使用
NSArray
和NSMutableArray
时,Swift中的var
和let
关键字就和数组是否可以被修改没关系了。它们只控制对应的变量是否可以被赋值成新的NSArray
或NSMutableArray
对象。
Array 的常用方法
map
: 只是将for
的循环逻辑封装在了函数中forEach
和map
效果类似,但是 不处理Closure参数返回值, 所以最好只用来对数组中的元素进行一些操作,而不能用来产生返回结果sorted(by:)
: 只对数组进行排序,当然通过by
可以自定义排序partition(by:)
: 可以先对传递进来的数组进行重排filter
: 过滤,通过给定的特定条件contains
: 只要遇到满足条件的元素,函数的执行就终止array.reduce(0 , +)
: 相当于是把for
循环迭代相加的过程封装起来flatMap
: 返回后的数组不存在nil
,并会把Optional
解包,还可以把数组中存有数组的数组一同打开变成一个新的一维数组