gpt4 book ai didi

swift - 为什么 Array.sorted() 没有默认关闭?

转载 作者:搜寻专家 更新时间:2023-11-01 05:49:09 26 4
gpt4 key购买 nike

给定以下 Playground 片段

let list = [4.2, 1.3, 7.8]
let list1 = list.sorted() { $0 < $1 }
let list2 = sorted(list)
let list3 = sorted(list) { $0 < $1}

我可以使用两种形式的自由函数 sorted,带闭包或不带闭包。但是 Array.sorted() 方法没有这样的机会。有充分的理由不这样做吗? Apple 不能这样声明吗?

func sorted(isOrderedBefore: (<T>, <t>) -> Bool = { $0 < $1 }) { ...

(作为附带问题,为什么 playground 在右侧显示 (3 times),而不是 list1list3< 的结果列表?)

最佳答案

let list2 = sorted(list)函数

func sorted<C : SequenceType where C.Generator.Element : Comparable>(source: C) -> [C.Generator.Element]

被调用。此函数仅针对序列定义元素类型是 Comparable ,即可以与 < 进行比较.

另一方面,不可能定义数组扩展方法 sorted()仅适用于具有可比较元素的数组,比较

关于swift - 为什么 Array.sorted() 没有默认关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29996218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com