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

من موسوعة حسوب
مراجعة 10:40، 5 يوليو 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (تدقيق الأمثلة.)

تعيد الدالة filterIsInstance()‎ قائمة تحوي عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن.

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

inline fun <reified R> Array<*>.filterIsInstance(): List<R> 
inline fun <reified R> Iterable<*>.filterIsInstance(): List<R>

يمكن تمرير المعامل klass إلى الدالة filterIsInstance()‎:

fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R> 
fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R>

بيئة التشغيل المطلوبة: JVM

وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع توثيق الدوال المباشرة)، واستخدام الكلمة المفتاحية reified يسمح بالوصول إلى نوعٍ مُمرَّر كمتحولٍ وسيطٍ (parameter، راجع توثيق reified للمزيد من التفاصيل).

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

تُعاد قائمة تحوي عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن.

أمثلة

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

تعرِّف الشيفرة الآتية مصفوفة باسم array باستخدام الدالة ()arrayOf ثمَّ تستخدم الدالة ()filterIsInstance لترشيح العناصر التي من النوع "سلسلة نصية" فقط:

fun main(args: Array<String>) {
    val array = arrayOf("hsoub", 5, "mostaql", "khamsat", 3)

    println(array.filterIsInstance<String>()) // [hsoub, mostaql, khamsat]
}

انظر أيضًا

مصادر