文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Range   >   last(where:)
インスタンスメソッド
last(where:)
与えられた predicate (述語) を満たすシーケンスの最後の要素を返します。
宣言
func last(where predicate: (Bound) throws -> Bool) rethrows -> Bound?
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
パラメータ
predicate | シーケンスの要素をその引数として取り、要素が一致するかどうかを示すブール値を返すクロージャ。 |
戻り値
predicate (述語) を満たすシーケンスの最後の要素。predicate (述語) を満たす要素がない場合は nil。
議論
この例では、last(where:) メソッドを使用して、整数の配列内の最後の負の数を検索します。
let numbers = [3, 7, 4, -2, 9, -6, 10, 1]
if let lastNegative = numbers.last(where: { $0 < 0 }) {
print("The last negative number is \(lastNegative).")
}
// Prints "The last negative number is -6."
複雑さ:O(n)、ここで n はコレクションの長さです。
以下も見よ
要素の検索
func first(where: (Bound) -> Bool) -> Bound?
与えられた predicate (述語) を満たすシーケンスの最初の要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func firstIndex(of: Bound) -> Bound?
指定された値がコレクションに現れる最初のインデックスを返します。
Element が Equatable に準拠している場合に使用可能です。
func firstIndex(where: (Bound) -> Bool) -> Bound?
コレクションの要素が与えられた predicate (述語) を満たす最初のインデックスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func lastIndex(of: Bound) -> Bound?
指定された値がコレクションに現れる最後のインデックスを返します。
Element が Equatable に準拠している場合に使用可能です。
func lastIndex(where: (Bound) -> Bool) -> Bound?
与えられた predicate (述語) に一致するコレクション内の最後の要素のインデックスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
シーケンス内の最小要素を返します。
Element が Comparable に準拠している場合使用可能です。
func min(by: (Bound, Bound) -> Bool) -> Bound?
与えられた predicate (述語) を要素間の比較として使用して、シーケンス内の最小要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
シーケンス内の最大要素を返します。
Element が Comparable に準拠している場合使用可能です。
func max(by: (Bound, Bound) -> Bool) -> Bound?
与えられた predicate (述語) を要素間の比較として使用して、シーケンス内の最大要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。