الدالة filterIsInstance()
في لغة Kotlin
تعيد الدالةfilterIsInstance()
لائحة تحتوي عناصر المصفوفة أو المجموعة التي استُدعيت عبرها والتي هي نسخة (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) أو صنفٍ معيّن.
أمثلة
استخدام الدالة ()filterIsInstance
مع المصفوفات
تعرف الشيفرة الآتية مصفوفة باسم array
مكونة من أعداد وسلاسل نصية باستخدام الدالة ()arrayOf
، ثم تستخدم الدالة ()filterIsInstance
لتصفية عناصر المصفوفة array
وانشاء لائحة جديدة تضم السلاسل النصية فقط، ثم تطبع اللائحة:
fun main(args: Array<String>) {
val array = arrayOf("hsoub", 5,"mostaql","kotlin",3)
println(array.filterIsInstance<String>())// [hsoub, mostaql, kotlin]
}
انظر أيضًا
filter()
: تعيد لائحة تحتوي عناصر المصفوفة أو المجموعة التي تحقق الشرط المنطقيpredicate()
المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقيpredicate()
الممرر إلى الدالة.
filterIndexed()
: تعيد لائحة تحتوي عناصر المصفوفة أو المجموعة التي تحقق الشرط المنطقيpredicate()
المُمرّر إلى الدالة والتي تأخذ قيمة وفهرس عناصر المصفوفة أو المجموعة كوسيطين.