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