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

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

تعيد الدالةfilterIsInstanceTo()‎ لائحة تحتوي عناصر المصفوفة أو المجموعة التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أو صنفٍ معيّن.

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

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 للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).

يلاحظ أيضًا استخدام الكلمة المفتاحية reified للتمكّن من الوصول إلى نوعٍ مُمرَّر كمتحولٍ وسيطٍ (parameter)، راجع توثيق reified.

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

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

أمثلة

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

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونة من أعداد وسلاسل نصية باستخدام الدالة ()arrayOf، ثم تستخدم الدالة ()filterIsInstanceTo لتصفية عناصر المصفوفة array وانشاء لائحة جديدة تضم السلاسل النصية فقط، ثم تطبع اللائحة:

fun main(args: Array<String>) {
val array = arrayOf("hsoub", 5,"mostaql","kotlin",3)
    
println(array.filterIsInstance<String>())// [hsoub, mostaql, kotlin]
}

انظر أيضًا

  • filter()‎: تعيد  لائحة تحتوي عناصر المصفوفة أو المجموعة التي تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي predicate()‎ الممرر إلى الدالة.

مصادر