الفرق بين المراجعتين ل"Kotlin/collections/filterIsInstance"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>filterIsInstance()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>filterIsInstance()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة<code>filterIsInstance()‎</code> [[Kotlin/collections/List|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أو [[Kotlin/classes|صنفٍ]] معيّن.
+
تعيد الدالة <code>filterIsInstance()‎</code> [[Kotlin/List|قائمة]] تحوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو [[Kotlin/classes|صنفٍ]] معيّن.
  
 
==البنية العامة==
 
==البنية العامة==
سطر 6: سطر 6:
 
inline fun <reified R> Array<*>.filterIsInstance(): List<R>  
 
inline fun <reified R> Array<*>.filterIsInstance(): List<R>  
 
inline fun <reified R> Iterable<*>.filterIsInstance(): List<R>  
 
inline fun <reified R> Iterable<*>.filterIsInstance(): List<R>  
</syntaxhighlight>يمكن تمرير معامل <code>klass</code> إلى الدالة <code>filterIsInstance()‎:</code>
+
</syntaxhighlight>يمكن تمرير المعامل <code>klass</code> إلى الدالة <code>filterIsInstance()‎</code>:
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
 
fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R>  
 
fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R>  
 
fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R>  
 
fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R>  
</syntaxhighlight>'''<u>بيئة التشغيل المطلوبة: JVM</u>'''
+
</syntaxhighlight>'''بيئة التشغيل المطلوبة:''' JVM
  
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
+
وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]])، و<nowiki/>استخدام الكلمة المفتاحية <code>reified</code> يسمح بالوصول إلى نوعٍ مُمرَّر كمتحولٍ وسيطٍ (parameter، راجع [[Kotlin/inline functions#.D8.A7.D9.84.D9.85.D8.AA.D8.AD.D9.88.D9.91.D9.84.D8.A7.D8.AA .D9.85.D9.86 .D8.A7.D9.84.D9.86.D9.88.D8.B9 reified.C2.A0|توثيق reified]] للمزيد من التفاصيل).
 
 
يلاحظ أيضًا استخدام الكلمة المفتاحية <code>reified</code> للتمكّن من الوصول إلى نوعٍ مُمرَّر كمتحولٍ وسيطٍ (parameter)، راجع [[Kotlin/inline functions#.D8.A7.D9.84.D9.85.D8.AA.D8.AD.D9.88.D9.91.D9.84.D8.A7.D8.AA .D9.85.D9.86 .D8.A7.D9.84.D9.86.D9.88.D8.B9 reified.C2.A0|توثيق reified]].
 
 
== القيم المٌعادة ==
 
== القيم المٌعادة ==
[[Kotlin/collections/List|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أو [[Kotlin/classes|صنفٍ]] معيّن.
+
تُعاد [[Kotlin/List|قائمة]] تحوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو [[Kotlin/classes|صنفٍ]] معيّن.
  
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()filterIsInstance</code> مع المصفوفات===
 
===استخدام الدالة <code>()filterIsInstance</code> مع المصفوفات===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من أعداد وسلاسل نصية باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()filterIsInstance</code> لتصفية عناصر  [[Kotlin/Array|المصفوفة]] <code>array</code> وانشاء [[Kotlin/collections/List|لائحة]] جديدة تضم السلاسل النصية فقط، ثم تطبع [[Kotlin/collections/List|اللائحة]]:<syntaxhighlight lang="kotlin">
+
تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code> باستخدام الدالة <code>()arrayOf</code> ثمَّ تستخدم الدالة <code>()filterIsInstance</code> لترشيح العناصر التي من النوع "سلسلة نصية" فقط:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
val array = arrayOf("hsoub", 5,"mostaql","kotlin",3)
 
val array = arrayOf("hsoub", 5,"mostaql","kotlin",3)
سطر 28: سطر 26:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
*<code>[[Kotlin/collections/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> الممرر إلى الدالة.
+
* الدالة <nowiki/>[[Kotlin/collections/filter|<code>filter()</code>‎]]: ترشِّح عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها.
 
+
* الدالة <nowiki/>[[Kotlin/collections/filterIndexed|<code>filterIndexed()</code>‎]]: ترشِّح عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي تُعاد القيمة <code>true</code> معها عند تطبيق الدالة <code>predicate()‎</code> المُمرّرة عليها، إذ يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()‎</code> ثم تعيد بدورها قيمة منطقيَّة.
* <code>[[Kotlin/collections/filterIndexed|filterIndexed()]]</code>: تعيد <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة والتي تأخذ قيمة وفهرس عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] كوسيطين.
+
* الدالة <code>[[Kotlin/collections/filterIndexedTo|filterIndexedTo()]]</code>: تضيف إلى المعامل <code>destination</code> المُمرَّر إليها عناصر [[Kotlin/collections/MutableCollection|المجموعة المتغيرة]] (MutableCollection) المعطاة التي أعيدت القيمة <code>true</code> مع كل عنصر منها عند تطبيق الدالة <code>predicate()‎</code> المُمرّرة عليها.
 +
* الدالة <code>[[Kotlin/collections/filterIsInstanceTo|filterIsInstanceTo()‎]]</code>: تضيف عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو [[Kotlin/classes|صنفٍ]] معيّن إلى [[Kotlin/collections/MutableCollection|المجموعة المتغيرة]] <code>destination</code> المُمرّرة إليها.
  
 
==مصادر==
 
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-is-instance.html الدالة  filterIsInstance()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-is-instance.html الدالة filterIsInstance()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 15:40، 4 يوليو 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","kotlin",3)
    
println(array.filterIsInstance<String>())// [hsoub, mostaql, kotlin]
}

انظر أيضًا

مصادر