为什么Array.sorted()没有默认闭包?

Tra*_*ggs 1 closures swift

给出以下游乐场片段

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)在右侧,而不是结果列表list1list3?)

Mar*_*n R 5

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()仅适用于具有可比元素的数组的数组扩展方法,比较