文書   >   Swift 標準ライブラリ   >   Collections   >   Supporting Types   >   AnyRandomAccessCollection   >   min(by:)
インスタンスメソッド
min(by:)
指定された述語を要素間の比較として使用して、シーケンス内の最小要素を返します。
宣言
@warn_unqualified_access func min(by areInIncreasingOrder: (Element,Element) throws -> Bool) rethrows -> Element?
パラメータ
areInIncreasingOrder | 最初の引数が 2 番目の引数の前に順序付けされる必要がある場合は true を返す predicate (述語)。それ以外の場合は false 。 |
戻り値
areInIncreasingOrder に従って、シーケンスの最小要素。シーケンスに要素がない場合は、nil を返します。
議論
predicate (述語) は要素に対して厳密に弱い順序 でなければなりません。つまり、任意の要素 a、b、および c の要素に対して、以下の条件が成り立たなければなりません。
- areInIncreasingOrder(a、a) は常に false です。(再帰的でない)
- areInIncreasingOrder(a、b) と areInIncreasingOrder(b、c) が両方とも true の場合、areInIncreasingOrder(a、c) も true です。(推移比較可能性)
- 2 つの要素が、いずれも predicate (述語) に従って他の要素の前に順序付けされていない場合、比較できない ものです。a と b が比較できず、b と c が比較できない場合、a と c も比較できません。(推移比較不能性)
この例では、辞書上で min(by:) メソッドを使用して、最小値を持つキー値のペアを検索する方法を示しています。
let hues = ["Heliotrope": 296, "Coral": 16, "Aquamarine": 156]
let leastHue = hues.min { a, b in a.value < b.value }
print(leastHue)
// Prints "Optional(("Coral", 16))"