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

من موسوعة حسوب
مراجعة 19:23، 13 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>elementAtOrNull()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>elementAtOrNull()‎</code> الع...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تعيد الدالةelementAtOrNull()‎ العنصر الموجود عند الفهرس (index) المحدد من المصفوفة أو المجموعة التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود المصفوفة أو المجموعة فستُعيد ناتج تطبيق الدالة المُمرّرة defaultValue()‎ على الفهرس.

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

يمكن استدعاء الدالةelementAtOrElse()‎ على المصفوفات.

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

يمكن استدعاء الدالةelementAtOrElse()‎ على المجموعات.

fun <T> Iterable<T>.elementAtOrElse(
    index: Int, 
    defaultValue: (Int) -> T
): T

يمكن استدعاء الدالةelementAtOrElse()‎ على اللوائح.

inline fun <T> List<T>.elementAtOrElse(
    index: Int, 
    defaultValue: (Int) -> T
): T

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

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

العنصر الموجود عند الفهرس (index) المحدد من المصفوفة أو المجموعة التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود المصفوفة أو المجموعة فستُعيد ناتج تطبيق الدالة المُمرّرة defaultValue()‎ على الفهرس.

أمثلة

استخدام الدالة ()elementAtOrNull مع المصفوفات: الحالة الأولى

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونة من ستة أعداد باستخدام الدالة ()arrayOf، ثم تعرف دالة باسم default، ثم تستخدم الدالة ()elementAt للحصول على العنصر الموجود عند الفهرس 2 ثم تطبع الناتج:

fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4,5,6)
val default: (Int) -> Int = { it * 10}

println(array.elementAtOrElse(2,default)) // 3
}

استخدام الدالة ()elementAtOrNull مع المصفوفات: الحالة الثانية

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

fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4,5,6)
val default: (Int) -> Int = { it * 10}
println(array.elementAtOrElse(12,default)) // 120
}

انظر أيضًا

مصادر