الفرق بين المراجعتين لصفحة: «Kotlin/collections/any»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة any() في لغة Kotlin}}</noinclude> تُعيد الدالة <code>any()</code> القيمة <code>true</code> إن كا...' |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة any() في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة any() في لغة Kotlin}}</noinclude> | ||
يختلف سلوك الدالة <code>any()</code> بحسب طريقة استدعائها: | |||
* في حال استدعاء الدالة <code>any()</code> عبر مصفوفة أو مجموعة (collection) دون تمرير أيّ معامل (parameter) لها فستعيد القيمة<code>true</code> إن كانت المصفوفة أو المجموعة تحتوي على عنصر واحد على الأقل، أو <code>false</code> خلاف ذلك. | |||
* في حال تمرير دالة كوسيط إلى المصفوفة أو المجموعة التي استُدعيت الدالة <code>any()</code> عبرها فستعيد القيمة <code>true</code> إن كان واحد على الأقل من عناصر المصفوفة أو المجموعةيحقق العبارة المنطقية (predicate) المحددة، أو <code>false</code> خلاف ذلك | |||
* في حال استدعاء الدالة <code>any()</code> عبر قاموس (Map) وتمرير دالة لها كمعامل، فستُعيد القيمة <code>true</code> إن كان واحد على الأقل من مداخل (entries) القاموس الذي استُدعيت عبره يحقق العبارة المنطقية (predicate) المحددة: | |||
* إن استُدعيت عبر قاموس دون تمرير أي معامل (parameter) إليها، فستعيدالقيمة<code>true</code> إن كان القاموس يحتوي على مدخل (entry) واحد على الأقل، أو <code>false</code> خلاف ذلك. | |||
== البنية العامة == | == البنية العامة == | ||
يمكن استدعاء الدالة <code>any()</code> | يمكن استدعاء الدالة <code>any()</code>عبر مصفوفة دون معامل:<syntaxhighlight lang="kotlin"> | ||
fun <T> Array<out T>.any(): Boolean | |||
fun ByteArray.any(): Boolean ) | |||
fun ShortArray.any(): Boolean | |||
fun IntArray.any(): Boolean | |||
fun LongArray.any(): Boolean | |||
fun FloatArray.any(): Boolean | |||
fun DoubleArray.any(): Boolean | |||
fun BooleanArray.any(): Boolean | |||
fun CharArray.any(): Boolean | |||
</syntaxhighlight> | </syntaxhighlight>يمكن استدعاء الدالة <code>any()</code>عبر مصفوفة بتمرير دالة كمعامل:<syntaxhighlight lang="kotlin"> | ||
inline fun <T> Array<out T>.any(predicate: (T) -> Boolean): Boolean | |||
</syntaxhighlight> | inline fun ByteArray.any(predicate: (Byte) -> Boolean): Boolean | ||
inline fun <K, V> Map<out K, V>. | inline fun ShortArray.any(predicate: (Short) -> Boolean): Boolean | ||
inline fun IntArray.any(predicate: (Int) -> Boolean): Boolean | |||
inline fun LongArray.any(predicate: (Long) -> Boolean): Boolean | |||
inline fun FloatArray.any(predicate: (Float) -> Boolean): Boolean | |||
inline fun DoubleArray.any(predicate: (Double) -> Boolean): Boolean | |||
inline fun BooleanArray.any(predicate: (Boolean) -> Boolean): Boolean | |||
inline fun CharArray.any(predicate: (Char) -> Boolean): Boolean | |||
</syntaxhighlight>يمكن استدعاء الدالة <code>any()</code>عبر مُكرر (iterable) بتمرير دالة كمعامل:<syntaxhighlight lang="kotlin"> | |||
inline fun <T> Iterable<T>.any(predicate: (T) -> Boolean): Boolean | |||
</syntaxhighlight>يمكن استدعاء الدالة <code>any()</code>عبر مُكرر (iterable) دون معامل:<syntaxhighlight lang="kotlin"> | |||
fun <T> Iterable<T>.any(): Boolean | |||
</syntaxhighlight>يمكن استدعاء الدالة <code>any()</code>عبر قاموس (Map) بتمرير دالة كمعامل:<syntaxhighlight lang="kotlin"> | |||
inline fun <K, V> Map<out K, V>.any(predicate: (Entry<K, V>) -> Boolean): Boolean | |||
</syntaxhighlight>يمكن استدعاء الدالة <code>any()</code>عبر قاموس (Map) دون معامل:<syntaxhighlight lang="kotlin"> | |||
fun <K, V> Map<out K, V>.any(): Boolean | |||
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. | </syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. | ||
== القيم المعادة == | == القيم المعادة == | ||
<code>true</code> | <code>true</code> أو <code>false</code>. (انظر شرح الدالة أعلاه لمزيد من التفاصيل) | ||
== أمثلة == | == أمثلة == | ||
=== استخدام الدالة <code>()any</code> على | === استخدام الدالة <code>()any</code> على اللوائح دون تمرير مُعامل === | ||
تعرف الشيفرة الآتية | تعرف الشيفرة الآتية لائحة (list) فارغة باسم <code>emptyList</code> باستخدام الدالة <code>emptyList<Int>()</code>، ثم تعرف لائحة من 3 عناصر عددية باستخدام الدالة <code>listOf()</code>وتطبع قيمة استدعاء الدالة<code>()any</code> على كلا اللائحتين:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val | val emptyList = emptyList<Int>() | ||
println(emptyList.any()) // false | |||
println( | |||
val | val nonEmptyList = listOf(1, 2, 3) | ||
println( | println(nonEmptyList.any()) // true | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === استخدام الدالة <code>()any</code> بتمرير دالة كمُعامل === | ||
تعرف الشيفرة | تعرف الشيفرة الآتيةدالة باسم <code>isEvent</code> لاختبار زوجية الأعداد، ثم تعرّف مجالًا (range) باسم <code>zeroToTen</code> وتطبع قيمة ناتج استدعاء الدالة <code>()any</code> على ذلك المجال، ثم تعرف مجالًا باسم <code>odds</code> مكونًا من أعداد فردية باستخدام الدالة <code>map()</code> وتستدعي عبره الدالة <code>()any</code> ثم تطبع الناتج، وفي الأخير تستدعي الدالة <code>()any</code> على لائحة فارغة وتطبع الناتج:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val | val isEven: (Int) -> Boolean = { it % 2 == 0 } | ||
println( | val zeroToTen = 0..10 | ||
println(zeroToTen.any(isEven)) // true | |||
val odds = zeroToTen.map { it * 2 + 1 } | |||
println(odds.any { isEven(it) }) // false | |||
val emptyList = emptyList<Int>() | |||
println(emptyList.any { true }) // false | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* <code>[[Kotlin/collections/ | * <code>[[Kotlin/collections/all|all()]]</code>: تُعيد القيمة <code>true</code> إن كانت كل عناصر المجموعة (collection) التي استُدعيت عبرها تحقق العبارة المنطقية (predicate) المحددة، أو<code>false</code> خلاف ذلك. | ||
== مصادر == | == مصادر == |
مراجعة 11:10، 10 مايو 2018
يختلف سلوك الدالة any()
بحسب طريقة استدعائها:
- في حال استدعاء الدالة
any()
عبر مصفوفة أو مجموعة (collection) دون تمرير أيّ معامل (parameter) لها فستعيد القيمةtrue
إن كانت المصفوفة أو المجموعة تحتوي على عنصر واحد على الأقل، أوfalse
خلاف ذلك. - في حال تمرير دالة كوسيط إلى المصفوفة أو المجموعة التي استُدعيت الدالة
any()
عبرها فستعيد القيمةtrue
إن كان واحد على الأقل من عناصر المصفوفة أو المجموعةيحقق العبارة المنطقية (predicate) المحددة، أوfalse
خلاف ذلك - في حال استدعاء الدالة
any()
عبر قاموس (Map) وتمرير دالة لها كمعامل، فستُعيد القيمةtrue
إن كان واحد على الأقل من مداخل (entries) القاموس الذي استُدعيت عبره يحقق العبارة المنطقية (predicate) المحددة: - إن استُدعيت عبر قاموس دون تمرير أي معامل (parameter) إليها، فستعيدالقيمة
true
إن كان القاموس يحتوي على مدخل (entry) واحد على الأقل، أوfalse
خلاف ذلك.
البنية العامة
يمكن استدعاء الدالة any()
عبر مصفوفة دون معامل:
fun <T> Array<out T>.any(): Boolean
fun ByteArray.any(): Boolean )
fun ShortArray.any(): Boolean
fun IntArray.any(): Boolean
fun LongArray.any(): Boolean
fun FloatArray.any(): Boolean
fun DoubleArray.any(): Boolean
fun BooleanArray.any(): Boolean
fun CharArray.any(): Boolean
يمكن استدعاء الدالة any()
عبر مصفوفة بتمرير دالة كمعامل:
inline fun <T> Array<out T>.any(predicate: (T) -> Boolean): Boolean
inline fun ByteArray.any(predicate: (Byte) -> Boolean): Boolean
inline fun ShortArray.any(predicate: (Short) -> Boolean): Boolean
inline fun IntArray.any(predicate: (Int) -> Boolean): Boolean
inline fun LongArray.any(predicate: (Long) -> Boolean): Boolean
inline fun FloatArray.any(predicate: (Float) -> Boolean): Boolean
inline fun DoubleArray.any(predicate: (Double) -> Boolean): Boolean
inline fun BooleanArray.any(predicate: (Boolean) -> Boolean): Boolean
inline fun CharArray.any(predicate: (Char) -> Boolean): Boolean
يمكن استدعاء الدالة any()
عبر مُكرر (iterable) بتمرير دالة كمعامل:
inline fun <T> Iterable<T>.any(predicate: (T) -> Boolean): Boolean
يمكن استدعاء الدالة any()
عبر مُكرر (iterable) دون معامل:
fun <T> Iterable<T>.any(): Boolean
يمكن استدعاء الدالة any()
عبر قاموس (Map) بتمرير دالة كمعامل:
inline fun <K, V> Map<out K, V>.any(predicate: (Entry<K, V>) -> Boolean): Boolean
يمكن استدعاء الدالة any()
عبر قاموس (Map) دون معامل:
fun <K, V> Map<out K, V>.any(): Boolean
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المعادة
true
أو false
. (انظر شرح الدالة أعلاه لمزيد من التفاصيل)
أمثلة
استخدام الدالة ()any
على اللوائح دون تمرير مُعامل
تعرف الشيفرة الآتية لائحة (list) فارغة باسم emptyList
باستخدام الدالة emptyList<Int>()
، ثم تعرف لائحة من 3 عناصر عددية باستخدام الدالة listOf()
وتطبع قيمة استدعاء الدالة()any
على كلا اللائحتين:
fun main(args: Array<String>) {
val emptyList = emptyList<Int>()
println(emptyList.any()) // false
val nonEmptyList = listOf(1, 2, 3)
println(nonEmptyList.any()) // true
}
استخدام الدالة ()any
بتمرير دالة كمُعامل
تعرف الشيفرة الآتيةدالة باسم isEvent
لاختبار زوجية الأعداد، ثم تعرّف مجالًا (range) باسم zeroToTen
وتطبع قيمة ناتج استدعاء الدالة ()any
على ذلك المجال، ثم تعرف مجالًا باسم odds
مكونًا من أعداد فردية باستخدام الدالة map()
وتستدعي عبره الدالة ()any
ثم تطبع الناتج، وفي الأخير تستدعي الدالة ()any
على لائحة فارغة وتطبع الناتج:
fun main(args: Array<String>) {
val isEven: (Int) -> Boolean = { it % 2 == 0 }
val zeroToTen = 0..10
println(zeroToTen.any(isEven)) // true
val odds = zeroToTen.map { it * 2 + 1 }
println(odds.any { isEven(it) }) // false
val emptyList = emptyList<Int>()
println(emptyList.any { true }) // false
}
انظر أيضًا
all()
: تُعيد القيمةtrue
إن كانت كل عناصر المجموعة (collection) التي استُدعيت عبرها تحقق العبارة المنطقية (predicate) المحددة، أوfalse
خلاف ذلك.