インスタンスメソッド


min(by:)


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


System Swift iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+

macOS 11.0+ tvOS 14.0+ visionOS 1.0+ watchOS 7.0+

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




パラメータ


areInIncreasingOrder

その最初の引数をその 2 番目の引数の前に並べる必要がある場合は true を返し、それ以外の場合は false を返す述語。



戻り値


areInIncreasingOrder に従ったシーケンスの最小要素。シーケンスに要素がない場合は nil を返します。



議論


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


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

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

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

  • 以下の例では、辞書で min(by:) メソッドを使用して、最も低い値を持つキーと値のペアを見つける方法を示します。


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

    複雑さ:

    O(n)、ここで、n はシーケンスの長さです。













    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ