الدالة lastOrNull()
في لغة Kotlin
تعيد الدالةlastOrNull()
العنصر الأخير من المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها. في حال تمرير شرط منطقي predicate
كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.
في حال كانت المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها الدالةlastOrNull()
فارغة أو لم يكن هناك أي عنصر يحقق الشرط المنطقي predicate
فستعيد null
.
البنية العامة
يمكن استدعاء الدالةlastOrNull()
على المصفوفات:
fun <T> Array<out T>.lastOrNull(): T?
fun ByteArray.lastOrNull(): Byte?
fun ShortArray.lastOrNull(): Short?
fun IntArray.lastOrNull(): Int?
fun LongArray.lastOrNull(): Long?
fun FloatArray.lastOrNull(): Float?
fun DoubleArray.lastOrNull(): Double?
fun BooleanArray.lastOrNull(): Boolean?
fun CharArray.lastOrNull(): Char?
يمكن تمرير وسيط predicate
إلى الدالةlastOrNull()
:
inline fun <T> Array<out T>.lastOrNull(
predicate: (T) -> Boolean
): T?
inline fun ByteArray.lastOrNull(
predicate: (Byte) -> Boolean
): Byte?
inline fun ShortArray.lastOrNull(
predicate: (Short) -> Boolean
): Short?
inline fun IntArray.lastOrNull(
predicate: (Int) -> Boolean
): Int?
inline fun LongArray.lastOrNull(
predicate: (Long) -> Boolean
): Long?
inline fun FloatArray.lastOrNull(
predicate: (Float) -> Boolean
): Float?
inline fun DoubleArray.lastOrNull(
predicate: (Double) -> Boolean
): Double?
inline fun BooleanArray.lastOrNull(
predicate: (Boolean) -> Boolean
): Boolean?
inline fun CharArray.lastOrNull(
predicate: (Char) -> Boolean
): Char?
inline fun <T> Iterable<T>.lastOrNull(
predicate: (T) -> Boolean
): T?
inline fun <T> List<T>.lastOrNull(
predicate: (T) -> Boolean
): T?
يمكن استدعاء الدالةlastOrNull()
على المجموعات:
fun <T> Iterable<T>.lastOrNull(): T?
يمكن استدعاء الدالةlastOrNull()
على اللوائح:
fun <T> List<T>.lastOrNull(): T?
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المٌعادة
العنصر الأخير من المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها. في حال تمرير شرط منطقي predicate
كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.
في حال كانت المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها الدالةlastOrNull()
فارغة أو لم يكن هناك أي عنصر يحقق الشرط المنطقي predicate
فستعيد null
.
أمثلة
استخدام الدالة ()lastOrNull
مع المصفوفات: الحالة الأولى
تعرف الشيفرة الآتية مصفوفة باسم array
مكونة من ستة أعداد باستخدام الدالة ()arrayOf
، ثم تُعرّف الدالة المنطقية ()predicate
التي تحدد ما إذا كان العدد المُمرّر إليها أصغر من 3
، ثم تستخدم الدالة ()lastOrNull
لإيجاد العنصر الأخير في المصفوفةarray
الذي يحقق الدالة ()predicate
، ثم تطبع الناتج:
fun main(args: Array<String>) {
val array = arrayOf(9, 2, 3, 8, 5, 6)
val predicate : (Int) -> Boolean = { it < 3 }
println(array.lastOrNull(predicate)) // 2
}
استخدام الدالة ()lastOrNull
مع المصفوفات: الحالة الثانية
تعرف الشيفرة الآتية مصفوفة باسم array
مكونة من ستة أعداد باستخدام الدالة ()arrayOf
، ثم تُعرّف الدالة المنطقية ()predicate
التي تحدد ما إذا كان العدد المُمرّر إليها أصغر من 0
، ثم تستخدم الدالة ()lastOrNull
لإيجاد العنصر الأخير في المصفوفةarray
الذي يحقق الدالة ()predicate
، ولمّا كانت كل عناصر array
لا تحقق ذلك فستعيد null
، ثم تطبع الناتج:
fun main(args: Array<String>) {
val array = arrayOf(9, 2, 3, 8, 5, 6)
val predicate : (Int) -> Boolean = { it < 0}
println(array.lastOrNull(predicate)) // null
}
انظر أيضًا
lastIndexOf()
: تعيد آخر فهرس للعنصر الممرّر في المصفوفة أو المجموعة التي استُدعيت عبرها. وإن لم يكن العنصر موجودًا فستعيد -1
last()
: تعيد العنصر الأخير من المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها. في حال تمرير شرط منطقيpredicate
كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.