الفرق بين المراجعتين لصفحة: «Kotlin/collections/lastOrNull»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>lastOrNull()</code> في | <noinclude>{{DISPLAYTITLE: الدالة <code>lastOrNull()</code> في Kotlin}}</noinclude> | ||
تجلب الدالة <code>lastOrNull()</code> آخر عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها إن لم يُمرَّر إليها أي شيء، أو آخر عنصر يحقق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها. | |||
تشبه هذه الدالةُ الدالةَ <code>[[Kotlin/collections/first|first()]]</code> تمامًا باستثناء أنها تعيد القيمة <code>null</code> بدلًا من رمي استثناءٍ إن كانت <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت الدالة <code>last()</code> معها فارغة أو لم يكن هناك أي عنصر يحقق الدالة المنطقية الممرَّرة إليها. | |||
==البنية العامة== | ==البنية العامة== | ||
يمكن استدعاء | يمكن استدعاء الدالة <code>lastOrNull()</code> مع المصفوفات بدون تمرير أية معاملات:<syntaxhighlight lang="kotlin"> | ||
fun <T> Array<out T>.lastOrNull(): T? | fun <T> Array<out T>.lastOrNull(): T? | ||
fun ByteArray.lastOrNull(): Byte? | fun ByteArray.lastOrNull(): Byte? | ||
سطر 15: | سطر 16: | ||
fun CharArray.lastOrNull(): Char? | fun CharArray.lastOrNull(): Char? | ||
</syntaxhighlight> | </syntaxhighlight>ويمكن أيضًا استدعاء هذه الدالة مع تمرير دالة تمثِّل شرطًا منطقيًّا إليها:<syntaxhighlight lang="kotlin"> | ||
inline fun <T> Array<out T>.lastOrNull( | inline fun <T> Array<out T>.lastOrNull( | ||
predicate: (T) -> Boolean | predicate: (T) -> Boolean | ||
سطر 50: | سطر 51: | ||
): T? | ): T? | ||
</syntaxhighlight> | </syntaxhighlight>ويمكن استعمال الدالة أيضًا مع المجموعات والقوائم:<syntaxhighlight lang="kotlin"> | ||
fun <T> Iterable<T>.lastOrNull(): T? | fun <T> Iterable<T>.lastOrNull(): T? | ||
fun <T> List<T>.lastOrNull(): T? | fun <T> List<T>.lastOrNull(): T? | ||
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]). | |||
== المعاملات == | |||
=== <code>predicate</code> === | |||
دالةٌ تطبق على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة. يمرر إليها العنصر ثم تعيد القيمة المنطقية المقابلة له. | |||
==القيم المعادة== | |||
يُعاد آخر عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة إن لم يُمرَّر إلى الدالة أي معامل، أو آخر عنصر يحقق شرطًا معيَّنًا في حال تمرير دالة منطقية كمعامل، أو القيمة <code>nulll</code> إن كانت <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة فارغة أو لم يكن هناك أي عنصر يحقق ذلك الشرط المعطى. | |||
==أمثلة== | ==أمثلة== | ||
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code> باستخدام الدالة <code>()arrayOf</code> ثمَّ تستخدم الدالة <code>()lastOrNull</code> لجلب العنصر الأخير من تلك المصفوفة والعنصر الأخير السالب<nowiki/>:<syntaxhighlight lang="kotlin"> | |||
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val array = arrayOf(9, 2, 3, 8, 5, 6) | val array = arrayOf(9, 2, 3, 8, 5, 6) | ||
println(array.lastOrNull( | println(array.lastOrNull()) // 6 | ||
println(array.lastOrNull(predicate)) // null | |||
println(array.lastOrNull(predicate)) // null | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
*<code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/firstOrNull|firstOrNull()]]</code>: تجلب أول عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها إن لم يُمرَّر إليها أي شيء، أو أول عنصر يحقق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها. | ||
*الدالة <code>[[Kotlin/collections/last|last()]]</code>: تجلب آخر عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها إن لم يمرر إليها أي شيء، أو آخر عنصر يحق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها. | |||
* <code>[[Kotlin/collections/ | * الدالة <code>[[Kotlin/collections/lastIndexOf|lastIndexOf()]]</code>: تجلب فهرس آخر ظهور لعنصر محدَّد من <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو القائمة التي استُدعيت معها. | ||
*الدالة <code>[[Kotlin/collections/filterNotNull|filterNotNull()]]</code>: تعيد جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة باستثناء تلك ذات القيمة <code>null</code>. | |||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/last-or-null.html الدالة | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/last-or-null.html صفحة الدالة lastOrNull() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Collection]] |
المراجعة الحالية بتاريخ 08:24، 8 سبتمبر 2018
تجلب الدالة lastOrNull()
آخر عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها إن لم يُمرَّر إليها أي شيء، أو آخر عنصر يحقق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها.
تشبه هذه الدالةُ الدالةَ first()
تمامًا باستثناء أنها تعيد القيمة null
بدلًا من رمي استثناءٍ إن كانت المصفوفة أو المجموعة التي استُدعيت الدالة last()
معها فارغة أو لم يكن هناك أي عنصر يحقق الدالة المنطقية الممرَّرة إليها.
البنية العامة
يمكن استدعاء الدالة 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?
ويمكن أيضًا استدعاء هذه الدالة مع تمرير دالة تمثِّل شرطًا منطقيًّا إليها:
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?
ويمكن استعمال الدالة أيضًا مع المجموعات والقوائم:
fun <T> Iterable<T>.lastOrNull(): T?
fun <T> List<T>.lastOrNull(): T?
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)).
المعاملات
predicate
دالةٌ تطبق على كل عنصر من عناصر المصفوفة أو المجموعة المعطاة. يمرر إليها العنصر ثم تعيد القيمة المنطقية المقابلة له.
القيم المعادة
يُعاد آخر عنصر من عناصر المصفوفة أو المجموعة المعطاة إن لم يُمرَّر إلى الدالة أي معامل، أو آخر عنصر يحقق شرطًا معيَّنًا في حال تمرير دالة منطقية كمعامل، أو القيمة nulll
إن كانت المصفوفة أو المجموعة المعطاة فارغة أو لم يكن هناك أي عنصر يحقق ذلك الشرط المعطى.
أمثلة
تعرف الشيفرة الآتية مصفوفة باسم array
باستخدام الدالة ()arrayOf
ثمَّ تستخدم الدالة ()lastOrNull
لجلب العنصر الأخير من تلك المصفوفة والعنصر الأخير السالب:
fun main(args: Array<String>) {
val array = arrayOf(9, 2, 3, 8, 5, 6)
println(array.lastOrNull()) // 6
println(array.lastOrNull(predicate)) // null
}
انظر أيضًا
- الدالة
firstOrNull()
: تجلب أول عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها إن لم يُمرَّر إليها أي شيء، أو أول عنصر يحقق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها. - الدالة
last()
: تجلب آخر عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها إن لم يمرر إليها أي شيء، أو آخر عنصر يحق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها. - الدالة
lastIndexOf()
: تجلب فهرس آخر ظهور لعنصر محدَّد من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها. - الدالة
filterNotNull()
: تعيد جميع عناصر المصفوفة أو المجموعة المعطاة باستثناء تلك ذات القيمةnull
.