インスタンスメソッド


max(by:)


要素間の比較として、与えられた述語を使用して、シーケンス内の最大の要素を返します。


iOS 15.0+ iPadOS 15.0+ macOS 12.0+ Mac Catalyst 15.0+

tvOS 15.0+ watchOS 8.0+ visionOS 1.0+ Xcode 13.0+

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





パラメータ


areInIncreasingOrder

最初の引数が 2 番目の引数の前に順序付けされるべき場合に true を返す述語。それ以外の場合は false



戻り値


シーケンスが空でない場合はシーケンスの最大要素。それ以外の場合は nil



議論


述語は、要素に対して 厳密に弱い順序付け でなければなりません。つまり、任意の要素 a、b、c について、以下の条件が満たされなければなりません。


  • areInIncreasingOrder(a, a) は常に false です。(非再帰性)

  • areInIncreasingOrder(a, b)areInIncreasingOrder(b, c) が両方とも true の場合、areInIncreeasingOrder(a, c)true です。 (推移比較可能性)

  • 2 つの要素は、どちらも述語に従って他方より前に順序付けされていない場合、比較できませんab が比較できず、bc も比較できない場合、ac も比較できません。(推移比較不可能性)

  • 以下の例では、辞書で max(by:) メソッドを使用して、最大値を持つキー値のペアを検索する方法を示しています。


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


    複雑さ:O(n)、ここで n はシークエンスの長さです。















    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ