当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift AnySequence max(by:)用法及代码示例


实例方法

max(by:)

返回序列中的最大元素,使用给定的谓词作为元素之间的比较。

声明

@warn_unqualified_access func max(by areInIncreasingOrder: (Self.Element, Self.Element) throws -> Bool) rethrows -> Self.Element?

返回值

如果序列不为空,则序列的最大元素;否则,nil

参数

areInIncreasingOrder

如果其第一个参数应在其第二个参数之前排序,则返回 true 的谓词;否则,false

详述

谓词必须是元素上的strict weak ordering。也就是说,对于任何元素 abc ,必须满足以下条件:

  • areInIncreasingOrder(a, a) 始终是 false 。 (非反身性)

  • 如果 areInIncreasingOrder(a, b)areInIncreasingOrder(b, c) 都是 true ,那么 areInIncreasingOrder(a, c) 也是 true 。 (传递可比性)

  • 如果根据谓词,两个元素都没有排在另一个之前,则两个元素是incomparable。如果ab不可比,bc不可比,那么ac也是不可比的。 (传递不可比性)

此示例说明如何在字典上使用 max(by:) 方法来查找具有最高值的键值对。


let hues = ["Heliotrope": 296, "Coral": 16, "Aquamarine": 156]
let greatestHue = hues.max { a, b in a.value < b.value }
print(greatestHue)
// Prints "Optional((key: "Heliotrope", value: 296))"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 AnySequence max(by:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。