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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة all()‎ في لغة Kotlin}}</noinclude> تُعيد الدالة all()‎ القيمة true إن كانت كل عناصر ال...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة all()‎ في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة all()‎ في لغة Kotlin}}</noinclude>
  
تُعيد الدالة all()‎ القيمة true إن كانت كل عناصر المصفوفة أو المُكرّر (Iterable) الذي استُدعيت عبره تحقق العبارة المنطقية (predicate) المحددة، أو false خلاف ذلك.
+
تُعيد الدالة <code>all()‎</code> القيمة <code>true</code> إن كانت كل عناصر المصفوفة أو المُكرّر (Iterable) الذي استُدعيت عبره تحقق العبارة المنطقية (predicate) المحددة، أو <code>false</code> خلاف ذلك.
  
 
== البنية العامة ==
 
== البنية العامة ==
يمكن استدعاء الدالة all()‎ من لمصفوفات الأنواع المختلفة كما يلي:
+
يمكن استدعاء الدالة <code>all()‎</code> من لمصفوفات الأنواع المختلفة كما يلي:<syntaxhighlight lang="kotlin">
 
 
 
val <T> Array<out T>.lastIndex: IntRange
 
val <T> Array<out T>.lastIndex: IntRange
 
 
val ByteArray.lastIndex: IntRange
 
val ByteArray.lastIndex: IntRange
 
 
val ShortArray.lastIndex: IntRange
 
val ShortArray.lastIndex: IntRange
 
 
val IntArray.lastIndex: IntRange
 
val IntArray.lastIndex: IntRange
 
 
val LongArray.lastIndex: IntRange
 
val LongArray.lastIndex: IntRange
 
 
val FloatArray.lastIndex: IntRange
 
val FloatArray.lastIndex: IntRange
 
 
val DoubleArray.lastIndex: IntRange
 
val DoubleArray.lastIndex: IntRange
 
 
val BooleanArray.lastIndex: IntRange
 
val BooleanArray.lastIndex: IntRange
 
 
val CharArray.lastIndex: IntRange
 
val CharArray.lastIndex: IntRange
 
+
</syntaxhighlight>وكذلك من المكرّرات (Iterable):<syntaxhighlight lang="kotlin">
وكذلك من المكرّرات (Iterable):
 
 
 
 
val <T> List<T>.lastIndex: Int
 
val <T> List<T>.lastIndex: Int
 
+
</syntaxhighlight>وكذلك على القوميس (Maps):<syntaxhighlight lang="kotlin">
وكذلك على القوميس (Maps):
 
 
 
 
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)]].
يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
  
 
== القيم المعادة ==
 
== القيم المعادة ==
true إن كانت كل عناصر المصفوفة أو المُكرّر (Iterable) الذي استُدعيت عبره تحقق العبارة المنطقية (predicate) المحددة، أو false خلاف ذلك.
+
<code>true</code> إن كانت كل عناصر المصفوفة أو المُكرّر (Iterable) الذي استُدعيت عبره تحقق العبارة المنطقية (predicate) المحددة، أو <code>false</code> خلاف ذلك.
  
 
== أمثلة ==
 
== أمثلة ==
  
=== استخدام الدالة all على المجالات ===
+
=== استخدام الدالة <code>()all</code> على المجالات ===
تعرف الشيفرة الآتية دالة isEven()‎ تعيد القيمة true إن كان معاملها زوجيا أو تعيد false خلاف ذلك، وأيضًا تعرّف مجالا (range) باسم  zeroToTen يبدأ من واحد وينتهي ب 10، ثم تستخدم الدالة all()‎  للتحقق من أنّ كانت كل عناصر المجال zeroToTen  زوجية، ثم تعرف evens والذي هو حاصل ضرب عناصر المجال في 2 باستخدام الدالة map()‎ ونستخدم الدالة all()‎ للتحقق من أنّ كل عناصر المجال evens زوجيةة:
+
تعرف الشيفرة الآتية دالة <code>isEven()‎</code> تعيد القيمة <code>true</code> إن كان معاملها زوجيا أو تعيد <code>false</code> خلاف ذلك، وأيضًا تعرّف مجالا (range) باسم  <code>zeroToTen</code> يبدأ من واحد وينتهي ب 10، ثم تستخدم الدالة <code>all()‎</code> للتحقق من أنّ كانت كل عناصر المجال <code>zeroToTen</code> زوجية، ثم تعرف <code>evens</code> والذي هو حاصل ضرب عناصر المجال في <code>2</code> باستخدام الدالة <code>[[Kotlin/collections/map|map]]()‎</code> ونستخدم الدالة <code>all()‎</code> للتحقق من أنّ كل عناصر المجال <code>evens</code> زوجيةة:<syntaxhighlight lang="kotlin">
 
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
 
val isEven: (Int) -> Boolean = { it % 2 == 0 }  // تعريف دالة
 
val isEven: (Int) -> Boolean = { it % 2 == 0 }  // تعريف دالة
 
 
val zeroToTen = 0..10  // تعريف مجال
 
val zeroToTen = 0..10  // تعريف مجال
 
 
println(zeroToTen.all(isEven)) // false
 
println(zeroToTen.all(isEven)) // false
  
 
val evens = zeroToTen.map { it * 2 }  // ضرب عناصر المجال في 2
 
val evens = zeroToTen.map { it * 2 }  // ضرب عناصر المجال في 2
 
 
println(evens.all(isEven)) // true
 
println(evens.all(isEven)) // true
 
 
}
 
}
 +
</syntaxhighlight>
  
=== استخدام الدالة all على لائحة فارغة ===
+
=== استخدام الدالة <code>()all</code> على لائحة فارغة ===
تعرف الشيفرة الآتية لائحة فارغة وتتحقق بواسطة الدالة all()‎ من أن كل عناصرها زوجية، والنتيجة هي true، لأنها فارغة:
+
تعرف الشيفرة الآتية لائحة فارغة وتتحقق بواسطة الدالة <code>all()‎</code> من أن كل عناصرها زوجية، والنتيجة هي <code>true</code>، لأنها فارغة:<syntaxhighlight lang="kotlin">
 
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
 
val evens = zeroToTen.map { it * 2 }  // ضرب عناصر المجال في 2
 
val evens = zeroToTen.map { it * 2 }  // ضرب عناصر المجال في 2
 
 
println(evens.all(isEven)) // true
 
println(evens.all(isEven)) // true
 
 
}
 
}
 +
</syntaxhighlight>
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* any()‎: تُعيد true إن كان عنصر واحد على الأقل من المصفوفة يحقق العبارة المنطقية (predicate) المحددة، أو false خلاف ذلك.
+
* <code>[[Kotlin/collections/any|any()]]</code>‎: تُعيد <code>true</code> إن كان عنصر واحد على الأقل من المصفوفة يحقق العبارة المنطقية (predicate) المحددة، أو <code>false</code> خلاف ذلك.
  
 
== مصادر ==
 
== مصادر ==
* الخاصيّة  any()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.
+
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/all.html الخاصيّة  any()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 21:30، 9 مايو 2018


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

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

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

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 خلاف ذلك.

أمثلة

استخدام الدالة ()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 خلاف ذلك.

مصادر