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

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

المراجعة الحالية بتاريخ 09:17، 8 سبتمبر 2018

تجلب الدالة last()‎ آخر عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها إن لم يمرر إليها أي شيء، أو آخر عنصر يحق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها.

إن كانت المصفوفة أو المجموعة التي استُدعيت الدالة first()‎ عبرها فارغة أو لم يكن هناك أي عنصر يحقق الدالة المنطقية الممرَّرة إليها، فستُطلِق الدالة الاستثناءNoSuchElementException.

البنية العامة

يمكن استدعاء الدالة last()‎ مع المصفوفات بدون تمرير أية معاملات:

fun <T> Array<out T>.last(): T 
fun ByteArray.last(): Byte 
fun ShortArray.last(): Short 
fun IntArray.last(): Int 
fun LongArray.last(): Long 
fun FloatArray.last(): Float 
fun DoubleArray.last(): Double 
fun BooleanArray.last(): Boolean 
fun CharArray.last(): Char

ويمكن أيضًا استدعاء هذه الدالة مع تمرير دالة تمثِّل شرطًا منطقيًّا إليها:

inline fun <T> Array<out T>.last(
    predicate: (T) -> Boolean
): T 
inline fun ByteArray.last(predicate: (Byte) -> Boolean): Byte (source)
inline fun ShortArray.last(
    predicate: (Short) -> Boolean
): Short 
inline fun IntArray.last(predicate: (Int) -> Boolean): Int (source)
inline fun LongArray.last(predicate: (Long) -> Boolean): Long (source)
inline fun FloatArray.last(
    predicate: (Float) -> Boolean
): Float 
inline fun DoubleArray.last(
    predicate: (Double) -> Boolean
): Double 
inline fun BooleanArray.last(
    predicate: (Boolean) -> Boolean
): Boolean 
inline fun CharArray.last(predicate: (Char) -> Boolean): Char 
inline fun <T> Iterable<T>.last(predicate: (T) -> Boolean): T 
inline fun <T> List<T>.last(predicate: (T) -> Boolean): T

ويمكن استدعاء هذه الدالة أيضًا مع المجموعات والقوائم:

fun <T> Iterable<T>.last(): T

fun <T> List<T>.last(): T

وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)).

المعاملات

Predicate

دالةٌ تطبق على كل عنصر من عناصر المصفوفة أو المجموعة المعطاة. يمرر إليها العنصر ثم تعيد القيمة المنطقية المقابلة له.

القيم المعادة

يُعاد آخر عنصر من عناصر المصفوفة أو المجموعة المعطاة إن لم يُمرَّر أي معامل، أو أول عنصر يحقق شرطًا معيَّنًا في حال تمرير دالة منطقية كمعامل.

أمثلة

مثالٌ على استعمال الدالة ()last:

fun main(args: Array<String>) {
    val array = arrayOf(9, 2, 3, 8, 5, 6)
    val predicate: (Int) -> Boolean = { it < 6 }

    println(array.last()) // 6
    println(array.last(predicate)) // 5
}

انظر أيضًا

  • الدالة first()‎: أول عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها إن لم يمرر إليها أي شيء، أو أول عنصر يحق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها. 
  • الدالة lastIndexOf()‎: تجلب فهرس آخر ظهور لعنصر محدَّد من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها.
  • الدالة find()‎: تبحث على عنصر محدَّد ضمن عناصر المصفوفة أو المجموعة التي استُدعيت معها ثمَّ تعيد أول ظهور له.
  • الدالة filter()‎: ترشِّح عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها.

مصادر