الفرق بين المراجعتين ل"Kotlin/collections/lastOrNull"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>lastOrNull()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>lastOrNull()‎</code> العنصر ال...')
 
سطر 2: سطر 2:
 
تعيد الدالة<code>lastOrNull()‎</code> العنصر الأخير من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها. في حال تمرير شرط منطقي <code>predicate</code> كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.
 
تعيد الدالة<code>lastOrNull()‎</code> العنصر الأخير من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها. في حال تمرير شرط منطقي <code>predicate</code> كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.
  
في حال كانت [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها الدالة<code>lastOrNull()‎</code> فارغة أو لم يكن هناك أي عنصر يحقق الشرط المنطقي <code>predicate</code> فستطلق استثناءً <code>NoSuchElementException</code>.
+
في حال كانت [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها الدالة<code>lastOrNull()‎</code> فارغة أو لم يكن هناك أي عنصر يحقق الشرط المنطقي <code>predicate</code> فستعيد <code>null</code>.
 
==البنية العامة==
 
==البنية العامة==
 
يمكن استدعاء  الدالة<code>lastOrNull()‎</code> على [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
 
يمكن استدعاء  الدالة<code>lastOrNull()‎</code> على [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
fun <T> Array<out T>.last(): T  
+
fun <T> Array<out T>.lastOrNull(): T?
fun ByteArray.last(): Byte  
+
fun ByteArray.lastOrNull(): Byte?
fun ShortArray.last(): Short  
+
fun ShortArray.lastOrNull(): Short?
fun IntArray.last(): Int  
+
fun IntArray.lastOrNull(): Int?
fun LongArray.last(): Long  
+
fun LongArray.lastOrNull(): Long?
fun FloatArray.last(): Float  
+
fun FloatArray.lastOrNull(): Float?
fun DoubleArray.last(): Double  
+
fun DoubleArray.lastOrNull(): Double?
fun BooleanArray.last(): Boolean  
+
fun BooleanArray.lastOrNull(): Boolean?
fun CharArray.last(): Char  
+
fun CharArray.lastOrNull(): Char?
  
 
</syntaxhighlight>يمكن تمرير وسيط <code>predicate</code> إلى الدالة<code>lastOrNull()‎</code>:<syntaxhighlight lang="kotlin">
 
</syntaxhighlight>يمكن تمرير وسيط <code>predicate</code> إلى الدالة<code>lastOrNull()‎</code>:<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.last(
+
inline fun <T> Array<out T>.lastOrNull(
 
     predicate: (T) -> Boolean
 
     predicate: (T) -> Boolean
): T  
+
): T?
inline fun ByteArray.last(predicate: (Byte) -> Boolean): Byte (source)
+
inline fun ByteArray.lastOrNull(
inline fun ShortArray.last(
+
    predicate: (Byte) -> Boolean
 +
): Byte?
 +
inline fun ShortArray.lastOrNull(
 
     predicate: (Short) -> Boolean
 
     predicate: (Short) -> Boolean
): Short  
+
): Short?
inline fun IntArray.last(predicate: (Int) -> Boolean): Int (source)
+
inline fun IntArray.lastOrNull(
inline fun LongArray.last(predicate: (Long) -> Boolean): Long (source)
+
    predicate: (Int) -> Boolean
inline fun FloatArray.last(
+
): Int?
 +
inline fun LongArray.lastOrNull(
 +
    predicate: (Long) -> Boolean
 +
): Long?
 +
inline fun FloatArray.lastOrNull(
 
     predicate: (Float) -> Boolean
 
     predicate: (Float) -> Boolean
): Float  
+
): Float?
inline fun DoubleArray.last(
+
inline fun DoubleArray.lastOrNull(
 
     predicate: (Double) -> Boolean
 
     predicate: (Double) -> Boolean
): Double  
+
): Double?
inline fun BooleanArray.last(
+
inline fun BooleanArray.lastOrNull(
 
     predicate: (Boolean) -> Boolean
 
     predicate: (Boolean) -> Boolean
): Boolean  
+
): Boolean?
inline fun CharArray.last(predicate: (Char) -> Boolean): Char  
+
inline fun CharArray.lastOrNull(
inline fun <T> Iterable<T>.last(predicate: (T) -> Boolean): T  
+
    predicate: (Char) -> Boolean
inline fun <T> List<T>.last(predicate: (T) -> Boolean): T  
+
): Char?
 +
inline fun <T> Iterable<T>.lastOrNull(
 +
    predicate: (T) -> Boolean
 +
): T?
 +
inline fun <T> List<T>.lastOrNull(
 +
    predicate: (T) -> Boolean
 +
): T?
 +
 
 
</syntaxhighlight>يمكن استدعاء  الدالة<code>lastOrNull()‎</code> على [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
 
</syntaxhighlight>يمكن استدعاء  الدالة<code>lastOrNull()‎</code> على [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
fun <T> Iterable<T>.last(): T
+
fun <T> Iterable<T>.lastOrNull(): T?
  
 
</syntaxhighlight>يمكن استدعاء  الدالة<code>lastOrNull()‎</code> على [[Kotlin/List|اللوائح]]:<syntaxhighlight lang="kotlin">
 
</syntaxhighlight>يمكن استدعاء  الدالة<code>lastOrNull()‎</code> على [[Kotlin/List|اللوائح]]:<syntaxhighlight lang="kotlin">
fun <T> List<T>.last(): T  
+
fun <T> List<T>.lastOrNull(): T?
  
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
==القيم المٌعادة==
 
==القيم المٌعادة==
 
العنصر الأخير من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها. في حال تمرير شرط منطقي <code>predicate</code> كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.
 
العنصر الأخير من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها. في حال تمرير شرط منطقي <code>predicate</code> كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.
 +
 +
في حال كانت [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها الدالة<code>lastOrNull()‎</code> فارغة أو لم يكن هناك أي عنصر يحقق الشرط المنطقي <code>predicate</code> فستعيد <code>null</code>.
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()lastOrNull</code> مع المصفوفات: الحالة الأولى===
 
===استخدام الدالة <code>()lastOrNull</code> مع المصفوفات: الحالة الأولى===
سطر 53: سطر 68:
 
val predicate  : (Int) -> Boolean = { it < 3 }
 
val predicate  : (Int) -> Boolean = { it < 3 }
  
println(array.last(predicate)) // 2
+
println(array.lastOrNull(predicate)) // 2
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===استخدام الدالة <code>()lastOrNull</code> مع المصفوفات: الحالة الثانية===
 
===استخدام الدالة <code>()lastOrNull</code> مع المصفوفات: الحالة الثانية===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تُعرّف الدالة المنطقية <code>()predicate</code> التي تحدد ما إذا كان العدد المُمرّر إليها أصغر من <code>0</code> ، ثم تستخدم الدالة <code>()last</code> لإيجاد العنصر الأخير في [[Kotlin/Array|المصفوفة]]<code>array</code> الذي يحقق الدالة <code>()predicate</code>، ولمّا كانت كل عناصر <code>array</code> لا تحقق ذلك فستطلق استثناءً <code>NoSuchElementException</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تُعرّف الدالة المنطقية <code>()predicate</code> التي تحدد ما إذا كان العدد المُمرّر إليها أصغر من <code>0</code> ، ثم تستخدم الدالة <code>()lastOrNull</code> لإيجاد العنصر الأخير في [[Kotlin/Array|المصفوفة]]<code>array</code> الذي يحقق الدالة <code>()predicate</code>، ولمّا كانت كل عناصر <code>array</code> لا تحقق ذلك فستعيد <code>null</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(9, 2, 3, 2, 5, 1)
+
val array = arrayOf(9, 2, 3, 8, 5, 6)
val predicate  : (Int) -> Boolean = { it < 0 }
+
val predicate  : (Int) -> Boolean = { it < 0}
  
println(array.last(predicate)) // إطلاق استثناء
+
println(array.lastOrNull(predicate)) // null
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
*<code>[[Kotlin/collections/lastIndexOf|lastIndexOf()]]</code>‎: تعيد آخر فهرس للعنصر الممرّر في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها. وإن لم يكن العنصر موجودًا  فستعيد ‎<code>-1‎</code>.
+
*<code>[[Kotlin/collections/lastIndexOf|lastIndexOf()]]</code>‎: تعيد آخر فهرس للعنصر الممرّر في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها. وإن لم يكن العنصر موجودًا  فستعيد ‎<code>-1‎</code>
 +
 
 +
* <code>[[Kotlin/collections/last|last()]]</code>‎: تعيد العنصر الأخير من <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو اللائحة التي استُدعيت عبرها. في حال تمرير شرط منطقي <code>predicate</code> كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.
 +
 
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/last.html الدالة  lastOrNull()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/last-or-null.html الدالة  lastOrNull()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 14:34، 29 مايو 2018

تعيد الدالة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
}

انظر أيضًا

  • last()‎: تعيد العنصر الأخير من المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها. في حال تمرير شرط منطقي predicate كوسيط فستعيد العنصر الأخير الذي يحقق ذلك الشرط.

مصادر