Instance Method

prefix(while:)

Returns a sequence containing the initial, consecutive elements that satisfy the given predicate.

Declaration

func prefix(while predicate: (UInt8) throws -> Bool) rethrows -> [UInt8]

Parameters

predicate

A closure that takes an element of the sequence as its argument and returns a Boolean value indicating whether the element should be included in the result.

Return Value

A sequence of the initial, consecutive elements that satisfy predicate.

Discussion

The following example uses the prefix(while:) method to find the positive numbers at the beginning of the numbers array. Every element of numbers up to, but not including, the first negative value is included in the result.

let numbers = [3, 7, 4, -2, 9, -6, 10, 1]
let positivePrefix = numbers.prefix(while: { $0 > 0 })
// positivePrefix == [3, 7, 4]

If predicate matches every element in the sequence, the resulting sequence contains every element of the sequence.

Complexity: O(k), where k is the length of the result.

See Also

Selecting Bytes

func filter((UInt8) -> Bool) -> [UInt8]

Returns an array containing, in order, the elements of the sequence that satisfy the given predicate.

func prefix(Int) -> PrefixSequence<SHA256Digest>

Returns a sequence, up to the specified maximum length, containing the initial elements of the sequence.

func suffix(Int) -> [UInt8]

Returns a subsequence, up to the given maximum length, containing the final elements of the sequence.