インスタンスメソッド


min(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 min(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 という非同期シーケンスは、配列のすべての要素を生成します。min(by:) メソッドに提供される述語は、ランクを rawValue に基づいて並べます。


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




    以下も見よ


    非同期の結果シーケンスへのアクセス


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

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


    func prefix(Int) -> AsyncPrefixSequence<Self>

    基本非同期シーケンスの最初の要素を含む、指定された最大長さまでの非同期シーケンスを返します。


    func prefix(while: (Self.Element) async -> Bool) rethrows -> AsyncPrefixWhileSequence<Self>

    与えられた述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンスを返します。


    func reduce<Result>(Result, (Result, Self.Element) async throws -> Result) async rethrows -> Result

    与えられたクロージャを使用して非同期シーケンスの要素を結合した結果を返します。


    func reduce<Result>(into: Result, (inout Result, Self.Element) async throws -> Void) async rethrows -> Result

    変更可能な初期値を与えられて、与えられたクロージャを使用して非同期シーケンスの要素を結合した結果を返します。














    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ