インスタンスメソッド


max(by:)


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


iOS 13.0+ iPadOS 13.0+ Mac Catalyst 13.0+ macOS 10.15+

tvOS 13.0+ visionOS 1.0+ watchOS 6.0+

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




パラメータ


areInIncreasingOrder

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



戻り値


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



議論


このメソッドは、非同期シーケンスの値が Comparable に準拠していない場合、またはシーケンスに独自の順序付けを適用したい場合に使用します。


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


  • areInIncreasingOrder(a, a) は常に false です。(反射不可能性)

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

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

  • 以下の例では、トランプのランクの列挙型 Rank を使用しています。ランクは ace(最下位)から king (最上位)までの範囲です。RankCounter という非同期シーケンスが、配列のすべての要素を生成します。max(by:) メソッドに提供される述語は、rawValue に基づいてランクを並べます。


    enum Rank: Int {
        case ace = 1, two, three, four, five, six, seven, eight, nine, ten, jack, queen, king
    }
    
    let max = await RankCounter()
        .max { $0.rawValue < $1.rawValue }
    print(max ?? "none")
    // Prints "king"
    




    以下も見よ


    要素の検索


    func contains(Self.Element) async rethrows -> Bool

    非同期シーケンスに与えられた要素が含まれているかどうかを示すブール値を返します。


    func contains(where: (Self.Element) async throws -> Bool) async rethrows -> Bool

    非同期シーケンスに、与えられた述語を満たす要素が含まれているかどうかを示すブール値を返します。


    func allSatisfy((Self.Element) async throws -> Bool) async rethrows -> Bool

    非同期シーケンスによって生成されたすべての要素が与えられた述語を満たしているかどうかを示すブール値を返します。


    func first(where: (Self.Element) async throws -> Bool) async rethrows -> Self.Element?

    指定された述語を満たすシーケンスの最初の要素を返します。


    func min() async rethrows -> Self.Element?

    比較可能な要素の非同期シーケンス内の最小要素を返します。


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

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


    func max() async rethrows -> Self.Element?

    比較可能な要素の非同期シーケンス内の最大要素を返します。














    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ