Instance Method

# max(by:)

Returns the maximum element in the sequence, using the given predicate as the comparison between elements.

## Parameters

`areInIncreasingOrder`

A predicate that returns `true` if its first argument should be ordered before its second argument; otherwise, `false`.

## Return Value

The sequence’s maximum element if the sequence is not empty; otherwise, `nil`.

## Discussion

The predicate must be a strict weak ordering over the elements. That is, for any elements `a`, `b`, and `c`, the following conditions must hold:

• `areInIncreasingOrder(a, a)` is always `false`. (Irreflexivity)

• If `areInIncreasingOrder(a, b)` and `areInIncreasingOrder(b, c)` are both `true`, then `areInIncreasingOrder(a, c)` is also `true`. (Transitive comparability)

• Two elements are incomparable if neither is ordered before the other according to the predicate. If `a` and `b` are incomparable, and `b` and `c` are incomparable, then `a` and `c` are also incomparable. (Transitive incomparability)

This example shows how to use the `max(by:)` method on a dictionary to find the key-value pair with the highest value.

Complexity: O(n), where n is the length of the sequence.

### Finding Bytes

`func first(where: (UInt8) -> Bool) -> UInt8?`

Returns the first element of the sequence that satisfies the given predicate.

`func max() -> UInt8?`

Returns the maximum element in the sequence.

`func min() -> UInt8?`

Returns the minimum element in the sequence.

`func min(by: (UInt8, UInt8) -> Bool) -> UInt8?`

Returns the minimum element in the sequence, using the given predicate as the comparison between elements.

`func range(of: Data, options: Data.SearchOptions, in: Range<Data.Index>?) -> Range<Data.Index>?`

Finds the range of the specified data as a subsequence of this data, if it exists.

`typealias Data.SearchOptions`

Options that control a data search operation.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.