الدالة any()‎ في لغة Kotlin

من موسوعة حسوب
مراجعة 10:00، 10 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة any()‎ في لغة Kotlin}}</noinclude> تُعيد الدالة <code>any()‎</code> القيمة <code>true</code> إن كا...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


تُعيد الدالة any()‎ القيمة true إن كانت كل عناصر المصفوفة أو المُكرّر (Iterable) الذي استُدعيت عبره تحقق العبارة المنطقية (predicate) المحددة، أو false خلاف ذلك.

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

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

val <T> Array<out T>.lastIndex: IntRange
val ByteArray.lastIndex: IntRange
val ShortArray.lastIndex: IntRange
val IntArray.lastIndex: IntRange
val LongArray.lastIndex: IntRange
val FloatArray.lastIndex: IntRange
val DoubleArray.lastIndex: IntRange
val BooleanArray.lastIndex: IntRange
val CharArray.lastIndex: IntRange

وكذلك من المكرّرات (Iterable):

val <T> List<T>.lastIndex: Int

وكذلك على القوميس (Maps):

inline fun <K, V> Map<out K, V>.all( predicate: (Entry<K, V>) -> Boolean): Boolean

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

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

true إن كانت كل عناصر المصفوفة أو المُكرّر (Iterable) الذي استُدعيت عبره تحقق العبارة المنطقية (predicate) المحددة، أو false خلاف ذلك.

أمثلة

استخدام الدالة ()any على المجالات

تعرف الشيفرة الآتية دالة isEven()‎ تعيد القيمة true إن كان معاملها زوجيا أو تعيد false خلاف ذلك، وأيضًا تعرّف مجالا (range) باسم  zeroToTen يبدأ من واحد وينتهي ب 10، ثم تستخدم الدالة any()‎ للتحقق من أنّ كانت كل عناصر المجال zeroToTen زوجية، ثم تعرف evens والذي هو حاصل ضرب عناصر المجال في 2 باستخدام الدالة map()‎ ونستخدم الدالة any()‎ للتحقق من أنّ كل عناصر المجال evens زوجية:

fun main(args: Array<String>) {
val isEven: (Int) -> Boolean = { it % 2 == 0 }  // تعريف دالة
val zeroToTen = 0..10  // تعريف مجال
println(zeroToTen.all(isEven)) // false

val evens = zeroToTen.map { it * 2 }  // ضرب عناصر المجال في 2
println(evens.all(isEven)) // true
}

استخدام الدالة ()any على لائحة فارغة

تعرف الشيفرة الآتية لائحة فارغة وتتحقق بواسطة الدالة any()‎ من أن كل عناصرها زوجية، والنتيجة هي true، لأنها فارغة:

fun main(args: Array<String>) {
val evens = zeroToTen.map { it * 2 }  // ضرب عناصر المجال في 2
println(evens.all(isEven)) // true
}

انظر أيضًا

  • any()‎: تُعيد true إن كان عنصر واحد على الأقل من المصفوفة يحقق العبارة المنطقية (predicate) المحددة، أو false خلاف ذلك.

مصادر