lastThat

inline fun <T> Iterable<T>.lastThat(predicate: (index: Int, T) -> Boolean): T(source)

Returns the last element in this iterable for which predicate returns true.

The entire iterable is scanned; the predicate receives the zero-based index and each element.

Receiver

This iterable to search in iteration order.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for elements considered as candidates.

Type Parameters

T

The element type of this iterable.

Throws

if no element satisfies predicate.


inline fun <T> List<T>.lastThat(predicate: (index: Int, T) -> Boolean): T(source)

Returns the last element in this list for which predicate returns true.

Unlike the Iterable overload, this implementation walks the list from end to start.

Receiver

This list to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Type Parameters

T

The element type of this list.

Throws

if no element satisfies predicate.


inline fun <T> Array<T>.lastThat(predicate: (index: Int, T) -> Boolean): T(source)

Returns the last element in this object array for which predicate returns true.

The object array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This object array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Type Parameters

T

The element type of this object array.

Throws

if no element satisfies predicate.


inline fun ByteArray.lastThat(predicate: (index: Int, Byte) -> Boolean): Byte(source)

Returns the last element in this byte array for which predicate returns true.

The byte array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This byte array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Throws

if no element satisfies predicate.


inline fun ShortArray.lastThat(predicate: (index: Int, Short) -> Boolean): Short(source)

Returns the last element in this short array for which predicate returns true.

The short array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This short array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Throws

if no element satisfies predicate.


inline fun IntArray.lastThat(predicate: (index: Int, Int) -> Boolean): Int(source)

Returns the last element in this int array for which predicate returns true.

The int array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This int array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Throws

if no element satisfies predicate.


inline fun LongArray.lastThat(predicate: (index: Int, Long) -> Boolean): Long(source)

Returns the last element in this long array for which predicate returns true.

The long array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This long array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Throws

if no element satisfies predicate.


inline fun FloatArray.lastThat(predicate: (index: Int, Float) -> Boolean): Float(source)

Returns the last element in this float array for which predicate returns true.

The float array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This float array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Throws

if no element satisfies predicate.


inline fun DoubleArray.lastThat(predicate: (index: Int, Double) -> Boolean): Double(source)

Returns the last element in this double array for which predicate returns true.

The double array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This double array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Throws

if no element satisfies predicate.


inline fun BooleanArray.lastThat(predicate: (index: Int, Boolean) -> Boolean): Boolean(source)

Returns the last element in this boolean array for which predicate returns true.

The boolean array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This boolean array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Throws

if no element satisfies predicate.


inline fun CharArray.lastThat(predicate: (index: Int, Char) -> Boolean): Char(source)

Returns the last element in this char array for which predicate returns true.

The char array is scanned from end to start; the predicate receives the zero-based index and each element.

Receiver

This char array to search from end to start.

Return

The last matching element.

Parameters

predicate

Called with the index and each element; should return true for the element to return.

Throws

if no element satisfies predicate.