elementAtOrElse

inline fun <T> Array<out T>.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T
inline fun ByteArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Byte): Byte
inline fun ShortArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Short): Short
inline fun IntArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Int): Int
inline fun LongArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Long): Long
inline fun FloatArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Float): Float
inline fun DoubleArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Double): Double
inline fun BooleanArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Boolean): Boolean
inline fun CharArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Char): Char

Returns an element at the given index or the result of calling the defaultValue function if the index is out of bounds of this array.

Samples

import samples.*
import kotlin.test.*
fun main() { 
   //sampleStart 
   val list = listOf(1, 2, 3)
assertPrints(list.elementAtOrElse(0) { 42 }, "1")
assertPrints(list.elementAtOrElse(2) { 42 }, "3")
assertPrints(list.elementAtOrElse(3) { 42 }, "42")

val emptyList = emptyList<Int>()
assertPrints(emptyList.elementAtOrElse(0) { "no int" }, "no int") 
   //sampleEnd
}

fun <T> Iterable<T>.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T

Returns an element at the given index or the result of calling the defaultValue function if the index is out of bounds of this collection.

Samples

import samples.*
import kotlin.test.*
fun main() { 
   //sampleStart 
   val list = listOf(1, 2, 3)
assertPrints(list.elementAtOrElse(0) { 42 }, "1")
assertPrints(list.elementAtOrElse(2) { 42 }, "3")
assertPrints(list.elementAtOrElse(3) { 42 }, "42")

val emptyList = emptyList<Int>()
assertPrints(emptyList.elementAtOrElse(0) { "no int" }, "no int") 
   //sampleEnd
}

inline fun <T> List<T>.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T

Returns an element at the given index or the result of calling the defaultValue function if the index is out of bounds of this list.

Samples

import samples.*
import kotlin.test.*
fun main() { 
   //sampleStart 
   val list = listOf(1, 2, 3)
assertPrints(list.elementAtOrElse(0) { 42 }, "1")
assertPrints(list.elementAtOrElse(2) { 42 }, "3")
assertPrints(list.elementAtOrElse(3) { 42 }, "42")

val emptyList = emptyList<Int>()
assertPrints(emptyList.elementAtOrElse(0) { "no int" }, "no int") 
   //sampleEnd
}

inline fun UIntArray.elementAtOrElse(index: Int, defaultValue: (Int) -> UInt): UInt
inline fun ULongArray.elementAtOrElse(index: Int, defaultValue: (Int) -> ULong): ULong
inline fun UByteArray.elementAtOrElse(index: Int, defaultValue: (Int) -> UByte): UByte
inline fun UShortArray.elementAtOrElse(index: Int, defaultValue: (Int) -> UShort): UShort

Returns an element at the given index or the result of calling the defaultValue function if the index is out of bounds of this array.

Since Kotlin

1.3

Samples

import samples.*
import kotlin.test.*
fun main() { 
   //sampleStart 
   val list = listOf(1, 2, 3)
assertPrints(list.elementAtOrElse(0) { 42 }, "1")
assertPrints(list.elementAtOrElse(2) { 42 }, "3")
assertPrints(list.elementAtOrElse(3) { 42 }, "42")

val emptyList = emptyList<Int>()
assertPrints(emptyList.elementAtOrElse(0) { "no int" }, "no int") 
   //sampleEnd
}