الفرق بين المراجعتين لصفحة: «Kotlin/collections/all»
لا ملخص تعديل |
لا ملخص تعديل |
||
سطر 5: | سطر 5: | ||
== البنية العامة == | == البنية العامة == | ||
يمكن استدعاء الدالة <code>all()</code> من مصفوفات الأنواع المختلفة كما يلي:<syntaxhighlight lang="kotlin"> | يمكن استدعاء الدالة <code>all()</code> من مصفوفات الأنواع المختلفة كما يلي:<syntaxhighlight lang="kotlin"> | ||
inline fun <T> Array<out T>.all(predicate: (T) -> Boolean): Boolean | |||
inline fun ByteArray.all(predicate: (Byte) -> Boolean): Boolean | |||
inline fun ShortArray.all(predicate: (Short) -> Boolean): Boolean | |||
inline fun IntArray.all(predicate: (Int) -> Boolean): Boolean | |||
inline fun LongArray.all(predicate: (Long) -> Boolean): Boolean | |||
inline fun FloatArray.all(predicate: (Float) -> Boolean): Boolean | |||
inline fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean | |||
inline fun BooleanArray.all(predicate: (Boolean) -> Boolean): Boolean | |||
inline fun CharArray.all(predicate: (Char) -> Boolean): Boolean | |||
</syntaxhighlight>وكذلك من المكرّرات ( | </syntaxhighlight>وكذلك من المكرّرات (Iterables):<syntaxhighlight lang="kotlin"> | ||
inline fun <T> Iterable<T>.all(predicate: (T) -> Boolean): Boolean | |||
</syntaxhighlight>وكذلك على | </syntaxhighlight>وكذلك على القواميس (Maps):<syntaxhighlight lang="kotlin"> | ||
inline fun <K, V> Map<out K, V>.all( predicate: (Entry<K, V>) -> Boolean): Boolean | inline fun <K, V> Map<out K, V>.all( predicate: (Entry<K, V>) -> Boolean): Boolean | ||
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. | </syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. |
مراجعة 10:09، 10 مايو 2018
تُعيد الدالة all()
القيمة true
إن كانت كل عناصر المجموعة (collection) التي استُدعيت عبرها تحقق العبارة المنطقية (predicate) المحددة، أو false
خلاف ذلك.
البنية العامة
يمكن استدعاء الدالة all()
من مصفوفات الأنواع المختلفة كما يلي:
inline fun <T> Array<out T>.all(predicate: (T) -> Boolean): Boolean
inline fun ByteArray.all(predicate: (Byte) -> Boolean): Boolean
inline fun ShortArray.all(predicate: (Short) -> Boolean): Boolean
inline fun IntArray.all(predicate: (Int) -> Boolean): Boolean
inline fun LongArray.all(predicate: (Long) -> Boolean): Boolean
inline fun FloatArray.all(predicate: (Float) -> Boolean): Boolean
inline fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean
inline fun BooleanArray.all(predicate: (Boolean) -> Boolean): Boolean
inline fun CharArray.all(predicate: (Char) -> Boolean): Boolean
وكذلك من المكرّرات (Iterables):
inline fun <T> Iterable<T>.all(predicate: (T) -> Boolean): Boolean
وكذلك على القواميس (Maps):
inline fun <K, V> Map<out K, V>.all( predicate: (Entry<K, V>) -> Boolean): Boolean
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المعادة
true
إن كانت كل عناصر المصفوفة أو المُكرّر (Iterable) الذي استُدعيت عبره تحقق العبارة المنطقية (predicate) المحددة، أو false
خلاف ذلك.
أمثلة
استخدام الدالة ()all
على المجالات
تعرف الشيفرة الآتية دالة isEven()
تعيد القيمة true
إن كان معاملها زوجيا أو تعيد false
خلاف ذلك، وأيضًا تعرّف مجالا (range) باسم zeroToTen
يبدأ من واحد وينتهي ب 10، ثم تستخدم الدالة all()
للتحقق من أنّ كانت كل عناصر المجال zeroToTen
زوجية، ثم تعرف evens
والذي هو حاصل ضرب عناصر المجال في 2
باستخدام الدالة map()
ونستخدم الدالة all()
للتحقق من أنّ كل عناصر المجال 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
}
استخدام الدالة ()all
على لائحة فارغة
تعرف الشيفرة الآتية لائحة فارغة وتتحقق بواسطة الدالة all()
من أن كل عناصرها زوجية، والنتيجة هي true
، لأنها فارغة:
fun main(args: Array<String>) {
val evens = zeroToTen.map { it * 2 } // ضرب عناصر المجال في 2
println(evens.all(isEven)) // true
}
انظر أيضًا
any()
: تُعيدtrue
إن كان عنصر واحد على الأقل من المصفوفة يحقق العبارة المنطقية (predicate) المحددة، أوfalse
خلاف ذلك.