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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>filterIsInstanceTo()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>filterIsInstanceTo()‎</code> [...')
 
ط
 
(8 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>filterIsInstanceTo()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>filterIsInstanceTo()‎</code> في Kotlin}}</noinclude>
تعيد الدالة<code>filterIsInstanceTo()‎</code> [[Kotlin/collections/List|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أو [[Kotlin/classes|صنفٍ]] معيّن.
+
تضيف الدالة <code>filterIsInstanceTo()‎</code> عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو [[Kotlin/classes|صنفٍ]] معيّن إلى [[Kotlin/collections/MutableCollection|المجموعة المتغيرة]] <code>destination</code> المُمرّرة إليها.
  
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
inline fun <reified R> Array<*>.filterIsInstance(): List<R>
+
inline fun <reified R, C : MutableCollection<in R>> Array<*>.filterIsInstanceTo(
inline fun <reified R> Iterable<*>.filterIsInstance(): List<R>
+
    destination: C
</syntaxhighlight>يمكن تمرير معامل <code>klass</code> إلى الدالة <code>filterIsInstance()‎:</code>
+
): C
 +
inline fun <reified R, C : MutableCollection<in R>> Iterable<*>.filterIsInstanceTo(
 +
    destination: C
 +
): C
 +
</syntaxhighlight>يمكن تمرير معامل <code>klass</code> إلى الدالة <code>filterIsInstanceTo()‎</code>:
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R>  
+
fun <C : MutableCollection<in R>, R> Array<*>.filterIsInstanceTo(
fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R>
+
    destination: C,
</syntaxhighlight>'''<u>بيئة التشغيل المطلوبة: JVM</u>'''
+
    klass: Class<R>
 +
): C
 +
fun <C : MutableCollection<in R>, R> Iterable<*>.filterIsInstanceTo(
 +
    destination: C,
 +
    klass: Class<R>
 +
):
 +
</syntaxhighlight>'''بيئة التشغيل المطلوبة:''' JVM
  
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
+
وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]])، واستخدام الكلمة المفتاحية <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|صنفٍ]] معيّن.
+
=== <code>destination</code> ===
 +
مجموعة متغيرة موجود مسبقًا تمثل الوجهة المراد إضافة الناتج فيها.
 +
 
 +
=== <code>klass</code> ===
 +
الصنف الذي يراد جلب جميع العناصر التي تعدُّ نسخةً منه.
 +
 
 +
== القيم المعادة ==
 +
تُعاد عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو [[Kotlin/classes|صنفٍ]] معيّن والمضافة إلى المعامل <code>destination</code>.
  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()filterIsInstanceTo</code> مع المصفوفات===
+
تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باستخدام الدالة <code>()arrayOf</code> وقائمة متغيرة باستخدام الدالة <code>()mutableListOf</code> ثم تستخدم الدالة <code>()filterIsInstanceTo</code> لترشيح عناصر المصفوفة وإضافتها إلى القائمة المتغيرة:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من أعداد وسلاسل نصية باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()filterIsInstanceTo</code> لتصفية عناصر [[Kotlin/Array|المصفوفة]] <code>array</code> وانشاء [[Kotlin/collections/List|لائحة]] جديدة تضم السلاسل النصية فقط، ثم تطبع [[Kotlin/collections/List|اللائحة]]:<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", "khamsat", 3)
      
+
     val list = mutableListOf(0)
println(array.filterIsInstance<String>())// [hsoub, mostaql, kotlin]
+
    array.filterIsInstanceTo(list)
 +
 
 +
    println(list) // [0, 5, 3]  
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
==انظر أيضًا==
 
==انظر أيضًا==
*<code>[[Kotlin/collections/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> الممرر إلى الدالة.
+
* الدالة <code>[[Kotlin/collections/filterIsInstance|filterIsInstance()]]</code>‎: تعيد [[Kotlin/List|قائمة]] تحوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو [[Kotlin/classes|صنفٍ]] معيّن.
 
+
* الدالة <code>[[Kotlin/collections/filterTo|filterTo()‎]]</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> المُمرَّر إليها عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي أعيدت القيمة <code>true</code> مع كل عنصر منها عند تطبيق الدالة <code>predicate</code> المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()‎</code> ثم تعيد بدورها قيمة منطقيَّة.
 +
* <nowiki/><nowiki/><nowiki/>الدالة <code>[[Kotlin/collections/filterIndexedTo|filterIndexedTo()]]</code>: تضيف إلى المعامل <code>destination</code> المُمرَّر إليها عناصر المجموعة المتغيرة (MutableCollection) المعطاة التي أعيدت القيمة <code>true</code> مع كل عنصر منها عند تطبيق الدالة <code>predicate‎</code> المُمرّرة عليها.
 +
* الدالة <code>[[Kotlin/collections/filterNotNullTo|filterNotNullTo()‎]]</code>: تشبه الدالة <code>[[Kotlin/collections/filterNotNull|filterNotNull()‎]]</code> في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها.
 +
*الدالة <code>[[Kotlin/collections/filterNotTo|filterNotTo()‎]]</code>: تشبه الدالة <code>[[Kotlin/collections/filterNot|filterNot()]]</code>‎ في جميع النواحي باستثناء أنَّها تضيف الناتج المعاد إلى المعامل الممرَّر إليها.
  
 
==مصادر==
 
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-is-instance.html الدالة  filterIsInstanceTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-is-instance-to.html صفحة الدالة filterIsInstanceTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Collection]]

المراجعة الحالية بتاريخ 07:58، 8 سبتمبر 2018

تضيف الدالة filterIsInstanceTo()‎ عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن إلى المجموعة المتغيرة destination المُمرّرة إليها.

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

inline fun <reified R, C : MutableCollection<in R>> Array<*>.filterIsInstanceTo(
    destination: C
): C 
inline fun <reified R, C : MutableCollection<in R>> Iterable<*>.filterIsInstanceTo(
    destination: C
): C

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

fun <C : MutableCollection<in R>, R> Array<*>.filterIsInstanceTo(
    destination: C, 
    klass: Class<R>
): C
fun <C : MutableCollection<in R>, R> Iterable<*>.filterIsInstanceTo(
    destination: C, 
    klass: Class<R>
):

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

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

المعاملات

destination

مجموعة متغيرة موجود مسبقًا تمثل الوجهة المراد إضافة الناتج فيها.

klass

الصنف الذي يراد جلب جميع العناصر التي تعدُّ نسخةً منه.

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

تُعاد عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن والمضافة إلى المعامل destination.

أمثلة

تعرِّف الشيفرة الآتية مصفوفة باستخدام الدالة ()arrayOf وقائمة متغيرة باستخدام الدالة ()mutableListOf ثم تستخدم الدالة ()filterIsInstanceTo لترشيح عناصر المصفوفة وإضافتها إلى القائمة المتغيرة:

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

    println(list) // [0, 5, 3]   
}

انظر أيضًا

  • الدالة filterIsInstance()‎: تعيد قائمة تحوي عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن.
  • الدالة filterTo()‎: تشبه هذه الدالة في جميع النواحي باستثناء أنها تضيف الناتج إلى المعامل الممرر إليها.
  • الدالة filterIndexedTo()‎: تضيف إلى المجموعة المتغيرة destination المُمرَّر إليها عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true مع كل عنصر منها عند تطبيق الدالة predicate المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()‎ ثم تعيد بدورها قيمة منطقيَّة.
  • الدالة filterIndexedTo()‎: تضيف إلى المعامل destination المُمرَّر إليها عناصر المجموعة المتغيرة (MutableCollection) المعطاة التي أعيدت القيمة true مع كل عنصر منها عند تطبيق الدالة predicate‎ المُمرّرة عليها.
  • الدالة filterNotNullTo()‎: تشبه الدالة filterNotNull()‎ في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها.
  • الدالة filterNotTo()‎: تشبه الدالة filterNot()‎ في جميع النواحي باستثناء أنَّها تضيف الناتج المعاد إلى المعامل الممرَّر إليها.

مصادر