在Swift 3中,有什么区别:
self.myArray.sort(by: { $0.name > $1.name })
Run Code Online (Sandbox Code Playgroud)
和
let newSortedArray = self.myArray.sorted(by: { $0.name > $1.name })
Run Code Online (Sandbox Code Playgroud)
效果似乎是相同的,但我需要将第二个的结果传递给另一个数组(或自身?),以便能够使用它.
有什么不同?非常感谢帮助.
在这个例子中myArray是一个数组struct Whatever {var name: String ""}
Ada*_*o13 23
sort改变它被调用的数组,以便对其项进行排序.sorted返回调用它的数组的副本,并使用值排序.
如果数组的原始顺序很重要,则调用sort它会导致严重问题.
此外,如果您有一个包含值类型并sorted在其上调用的巨型数组,它将复制每个值并使内存使用量加倍.
Jos*_*ann 11
请注意,swift 3中的约定是,如果你有一个现在时的动词,如sort或reverse,它是一个变异函数(原始集合被修改),而如果你有一个过去分词或动名词,如枚举,追加或排序然后你得到一份副本.如果这是不明确的,因为操作已经是名词,就像union一样,变异版本用form:formUnion命名.
| 归档时间: |
|
| 查看次数: |
4167 次 |
| 最近记录: |