gpt4 book ai didi

swift - 闭包如何访问超过 1 个参数?

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

我不是在摸索这里发生了什么。闭包如何对元素进行排序并且在到达数组末尾时不抛出越界错误?为什么我不能通过 $2 使用第三个参数?

排序是数组的内置方法吗? (我想我只是回答了我自己的问题,但我仍然希望得到一些反馈。)

var numbers = [20, 19, 7, 12]
let sortedNumbers = numbers.sorted{$1 > $0}
print(sortedNumbers)

生产

[7, 12, 19, 20]

最佳答案

是的,sorted 是内置于 Swift 数组中的。如果元素类型实现了 Comparable,它可以在没有闭包的情况下完成。因此,您可以省略案例中的闭包并获得相同的结果。

排序算法一次调用成对元素的闭包以找出它们的顺序,这就是它需要两个参数的原因。

排序算法通常被设计成可以用最少的成对比较来推断数组的整个顺序(它不需要将每个元素与其他元素进行比较,也不需要简单地循环遍历数组到末尾)。

这可能有助于您理解(排序算法可视化):https://visualgo.net/en/sorting?slide=1

关于swift - 闭包如何访问超过 1 个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43528391/

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