الفرق بين المراجعتين لصفحة: «Kotlin/collections/none»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>none()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>none()‎</code> العنصر الأول من...'
 
طلا ملخص تعديل
 
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>none()‎</code> في لغة Kotlin}}</noinclude>
تتحقَّق الدالة <code>none()‎</code> إن كانت [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة التي استدعيت معها فارغةً، أو إن لم يكن هنالك أي عنصر من تلك العناصر محقِّقًا لشرط معين.
تعيد الدالة<code>none()‎</code> العنصر الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. وإن لم يكن هناك  أي عنصر يحقق ذلك فستعيد <code>null.</code>
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
يمكن استدعاء الدالة <code>none()‎</code> مع المصفوفات والمجموعات والخرائط دون تمرير أية معامل إليها:<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.find(
fun <T> Array<out T>.none(): Boolean
fun ByteArray.none(): Boolean
fun ShortArray.none(): Boolean
fun IntArray.none(): Boolean
fun LongArray.none(): Boolean
fun FloatArray.none(): Boolean
fun DoubleArray.none(): Boolean
fun BooleanArray.none(): Boolean
fun CharArray.none(): Boolean
 
fun <T> Iterable<T>.none(): Boolean (source)
 
fun <K, V> Map<out K, V>.none(): Boolean (source)
 
</syntaxhighlight>ويمكن تمرير الدالة <code>predicate</code> التي تمثل شرطًا معيَّنًا إلى الدالة <code>none()‎</code> مع المصفوفات والخرائط:<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.none(
     predicate: (T) -> Boolean
     predicate: (T) -> Boolean
): T?
): Boolean
inline fun ByteArray.find(
inline fun ByteArray.none(
     predicate: (Byte) -> Boolean
     predicate: (Byte) -> Boolean
): Byte?
): Boolean
inline fun ShortArray.find(
inline fun ShortArray.none(
     predicate: (Short) -> Boolean
     predicate: (Short) -> Boolean
): Short?
): Boolean
inline fun IntArray.find(predicate: (Int) -> Boolean): Int? (source)
inline fun IntArray.none(
inline fun LongArray.find(
    predicate: (Int) -> Boolean
): Boolean
inline fun LongArray.none(
     predicate: (Long) -> Boolean
     predicate: (Long) -> Boolean
): Long?
): Boolean
inline fun FloatArray.find(
inline fun FloatArray.none(
     predicate: (Float) -> Boolean
     predicate: (Float) -> Boolean
): Float?
): Boolean
inline fun DoubleArray.find(
inline fun DoubleArray.none(
     predicate: (Double) -> Boolean
     predicate: (Double) -> Boolean
): Double?
): Boolean
inline fun BooleanArray.find(
inline fun BooleanArray.none(
     predicate: (Boolean) -> Boolean
     predicate: (Boolean) -> Boolean
): Boolean?
): Boolean  
inline fun CharArray.find(
inline fun CharArray.none(
     predicate: (Char) -> Boolean
     predicate: (Char) -> Boolean
): Char?
): Boolean
inline fun <T> Iterable<T>.find(
inline fun <T> Iterable<T>.none(
     predicate: (T) -> Boolean
     predicate: (T) -> Boolean
): T?
): Boolean
 
inline fun <K, V> Map<out K, V>.none(
    predicate: (Entry<K, V>) -> Boolean
): Boolean (source)
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
 
== المعاملات ==
 
=== <code>predicate</code> ===
دالة تطبق على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة المعطاة، إذ يمرر إليها العنصر ثم تعيد القيمة المنطقية المقابلة له.


</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
==القيم المعادة==
==القيم المٌعادة==
تُعاد القيمة <code>true</code> إن كانت [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة المعطاة فارغةً أو لم يكن هنالك أي عنصر من تلك العناصر متطابقًا مع الدالة <code>()predicate</code> (إن أعطيت). خلا ذلك، تُعاد القيمة <code>false</code>.
العنصر الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. وإن لم يكن هناك  أي عنصر يحقق ذلك فستعيد <code>null.</code>
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()none</code> مع المصفوفات: الحالة الأولى===
استعمال الدالة <code>()none</code> للتحقق من أنّ قائمةً ما فارغةٌ أم لا:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تُعرّف الدالة المنطقية <code>()predicate</code> التي تحدد ما إذا كان العدد المُمرّر إليها أصغر من <code>3</code> ، ثم تستخدم الدالة <code>()none</code> لإيجاد العنصر الأول في [[Kotlin/Array|المصفوفة]]<code>array</code> الذي يحقق الدالة <code>()predicate</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val array = arrayOf(9, 2, 3, 2, 5, 1)
    val emptyList = emptyList<Int>()
val predicate  : (Int) -> Boolean = { it < 3 }


println(array.find(predicate)) // 2
    println(emptyList.none()) // true
}
}
</syntaxhighlight>
</syntaxhighlight>
===استخدام الدالة <code>()findnone/code> مع المصفوفات: الحالة الثانية===
استعمال الدالة <code>()none</code> للتحقق من عدم وجود أي عنصر في المصفوفة أصغر من 5:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تُعرّف الدالة المنطقية <code>()predicate</code> التي تحدد ما إذا كان العدد المُمرّر إليها أصغر من <code>0</code> ، ثم تستخدم الدالة <code>()none</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(3, 7, 9)
val predicate  : (Int) -> Boolean = { it < 0 }


println(array.find(predicate)) // null
    println(array.none { it < 5 }) // false
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
*<code>[[Kotlin/collections/findLast|findLast()]]</code>‎: تعيد العنصر الأخير من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. وإن لم يكن هناك  أي عنصر يحقق ذلك فستعيد <code>null.</code>
*الدالة <code>[[Kotlin/collections/orEmpty|orempty()]]</code>‎: تعيد المصفوفة أو المجموعة أو القائمة أو الخريطة التي استُدعيت معها إن لم تكن مساويةً للقيمة <code>null</code>، أو تعيد كائنًا فارغًا يقابل الكائن المعطى (مصفوفة فارغة، أو مجموعة فارغة ...إلخ.) خلاف ذلك.
* الدالة <code>[[Kotlin/collections/isEmpty|isEmpty()‎]]</code>: تتحقق إن كانت <nowiki/>[[Kotlin/Array|المصفوفة]] التي استُدعيت معها فارغةً أم لا.
* الدالة <code>[[Kotlin/jvm/isArrayOf|isArrayOf()‎]]</code>: تتحقق من حواية <nowiki/>[[Kotlin/Array|المصفوفة]] التي استُدعيت معها عناصرَ من نوعٍ محدَّد.
* الدالة <code>[[Kotlin/collections/all|all()‎]]</code>: تتحقق إن كانت كافّة عناصر المصفوفة أو المجموعة (collection) التي استُدعيت معها تطابق شرطًا محدَّدًا.
==مصادر==
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/find.html الدالة  none()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/none.html صفحة الدالة none()‎ في التوثيق الرسمي للمكتبة القياسيّة في لغة Kotlin.]<noinclude>{{DISPLAYTITLE: الدالة <code>none()‎</code> في Kotlin}}</noinclude>
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Collection]]

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

تتحقَّق الدالة none()‎ إن كانت المصفوفة أو المجموعة أو الخريطة التي استدعيت معها فارغةً، أو إن لم يكن هنالك أي عنصر من تلك العناصر محقِّقًا لشرط معين.

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

يمكن استدعاء الدالة none()‎ مع المصفوفات والمجموعات والخرائط دون تمرير أية معامل إليها:

fun <T> Array<out T>.none(): Boolean 
fun ByteArray.none(): Boolean 
fun ShortArray.none(): Boolean 
fun IntArray.none(): Boolean 
fun LongArray.none(): Boolean 
fun FloatArray.none(): Boolean 
fun DoubleArray.none(): Boolean 
fun BooleanArray.none(): Boolean 
fun CharArray.none(): Boolean

fun <T> Iterable<T>.none(): Boolean (source)

fun <K, V> Map<out K, V>.none(): Boolean (source)

ويمكن تمرير الدالة predicate التي تمثل شرطًا معيَّنًا إلى الدالة none()‎ مع المصفوفات والخرائط:

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

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

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

المعاملات

predicate

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

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

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

أمثلة

استعمال الدالة ()none للتحقق من أنّ قائمةً ما فارغةٌ أم لا:

fun main(args: Array<String>) {
    val emptyList = emptyList<Int>()

    println(emptyList.none()) // true
}

استعمال الدالة ()none للتحقق من عدم وجود أي عنصر في المصفوفة أصغر من 5:

fun main(args: Array<String>) {
    val array = arrayOf(3, 7, 9)

    println(array.none { it < 5 }) // false
}

انظر أيضًا

  • الدالة orempty()‎: تعيد المصفوفة أو المجموعة أو القائمة أو الخريطة التي استُدعيت معها إن لم تكن مساويةً للقيمة null، أو تعيد كائنًا فارغًا يقابل الكائن المعطى (مصفوفة فارغة، أو مجموعة فارغة ...إلخ.) خلاف ذلك.
  • الدالة isEmpty()‎: تتحقق إن كانت المصفوفة التي استُدعيت معها فارغةً أم لا.
  • الدالة isArrayOf()‎: تتحقق من حواية المصفوفة التي استُدعيت معها عناصرَ من نوعٍ محدَّد.
  • الدالة all()‎: تتحقق إن كانت كافّة عناصر المصفوفة أو المجموعة (collection) التي استُدعيت معها تطابق شرطًا محدَّدًا.

مصادر