给出以下游乐场片段
let list = [4.2, 1.3, 7.8]
let list1 = list.sorted() { $0 < $1 }
let list2 = sorted(list)
let list3 = sorted(list) { $0 < $1}
Run Code Online (Sandbox Code Playgroud)
我可以使用两种形式的自由函数sorted,有或没有闭包.但是Array.sorted()方法没有这样的机会.有没有理由不这样做?苹果公司不能宣布这样吗?
func sorted(isOrderedBefore: (<T>, <t>) -> Bool = { $0 < $1 }) { ...
Run Code Online (Sandbox Code Playgroud)
(作为一个附带问题,为什么操场显示(3 times)在右侧,而不是结果列表list1和list3?)
在let list2 = sorted(list)功能
func sorted<C : SequenceType where C.Generator.Element : Comparable>(source: C) -> [C.Generator.Element]
Run Code Online (Sandbox Code Playgroud)
叫做.该函数仅针对元素类型所针对的序列定义Comparable,即可以与之进行比较<.
另一方面,不可能定义一个sorted()仅适用于具有可比元素的数组的数组扩展方法,比较
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |