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

من موسوعة حسوب
< Kotlin‏ | collections
مراجعة 14:54، 31 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>orEmpty()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>orEmpty()‎</code> القيمة <code>true...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

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

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

يمكن استدعاء الدالة orEmpty()‎ عبر المصفوفات:

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

يمكن تمرير شرط منطقي predicate كوسيط:

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

يمكن استدعاء الدالة orEmpty()‎ عبر المجموعات:

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

يمكن استدعاء الدالة none()‎ عبر القواميس:

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

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

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

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

أمثلة

استخدام الدالة ()orEmpty مع اللوائح

تعرف الشيفرة الآتية لائحة فارغة باسم emptyList باستخدام الدالة ()emptyList<Int>‎ ، ثم تستخدم الدالة ()orEmpty للتحقق من أنّ اللائحة emptyList فارغة، ثم تطبع الناتج:

fun main(args: Array<String>) {
val emptyList = emptyList<Int>() // تعريف لائحة فارغة
    
println(emptyList.none()) // true
}

استخدام الدالة ()orEmpty مع المصفوفات

تعرف الشيفرة الآتية  مصفوفة باسم arrayمكونة من ثلاثة أعداد باستخدام الدالة ()arrayOf، ثم تستدعي الدالة ()orEmpty عبر array مع تمرير دالة منطقية تحدد ما إذا كان العدد المُمرّر إليها أصغر من 5 ، ثم تطبع الناتج:

fun main(args: Array<String>) {
val array = arrayOf(3, 7, 9) 
    
println(array.none { it < 5 }) // false
}

أنظر أيضًا

مصادر