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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>filterIsInstance()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>filterIsInstance()‎</code> Kot...')
 
سطر 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|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code>  المُمرّر إلى الدالة، الدالة المنطقية <code>predicate()‎</code> تأخذ فهرس العنصر وقيمته كمعامل وتعيد قيمة منطقية.
+
تعيد الدالة<code>filterIsInstance()‎</code> [[Kotlin/collections/List|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أو [[Kotlin/classes|صنفٍ]] معيّن.
  
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.filterIndexed(
+
inline fun <reified R> Array<*>.filterIsInstance(): List<R>  
    predicate: (index: Int, T) -> Boolean
+
inline fun <reified R> Iterable<*>.filterIsInstance(): List<R>  
): List<T>  
+
</syntaxhighlight>يمكن تمرير معامل <code>klass</code> إلى الدالة <code>filterIsInstance():</code>
inline fun ByteArray.filterIndexed(
+
<syntaxhighlight lang="kotlin">
    predicate: (index: Int, Byte) -> Boolean
+
fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R>  
): List<Byte>  
+
fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R>  
inline fun ShortArray.filterIndexed(
+
</syntaxhighlight>'''<u>بيئة التشغيل المطلوبة: JVM</u>'''
    predicate: (index: Int, Short) -> Boolean
+
 
): List<Short>  
+
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
inline fun IntArray.filterIndexed(
+
 
    predicate: (index: Int, Int) -> Boolean
+
يلاحظ أيضًا استخدام الكلمة المفتاحية <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]].
): List<Int>  
 
inline fun LongArray.filterIndexed(
 
    predicate: (index: Int, Long) -> Boolean
 
): List<Long>  
 
inline fun FloatArray.filterIndexed(
 
    predicate: (index: Int, Float) -> Boolean
 
): List<Float>
 
inline fun DoubleArray.filterIndexed(
 
    predicate: (index: Int, Double) -> Boolean
 
): List<Double>  
 
inline fun BooleanArray.filterIndexed(
 
    predicate: (index: Int, Boolean) -> Boolean
 
): List<Boolean>  
 
inline fun CharArray.filterIndexed(
 
    predicate: (index: Int, Char) -> Boolean
 
): List<Char>  
 
inline fun <T> Iterable<T>.filterIndexed(
 
    predicate: (index: Int, T) -> Boolean
 
): List<T>
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
 
== القيم المٌعادة ==
 
== القيم المٌعادة ==
[[Kotlin/collections/List|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code>  المُمرّر إلى الدالة.
+
[[Kotlin/collections/List|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أو [[Kotlin/classes|صنفٍ]] معيّن.
  
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()filterIsInstance</code> مع المصفوفات===
 
===استخدام الدالة <code>()filterIsInstance</code> مع المصفوفات===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()filterIndexed</code> لتصفية عناصر  [[Kotlin/Array|المصفوفة]] <code>array</code> بواسطة الدالة  <code>()predicate</code> المعرّفة في الشيفرة، وتنشئ [[Kotlin/collections/List|لائحة]] جديدة تضم عناصر [[Kotlin/Array|المصفوفة]] <code>array</code> التي فهرسها أصغر من قيمتها، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية [[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">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(1,2,1,7,3,11)
+
val array = arrayOf("hsoub", 5,"mostaql","kotlin",3)
val predicate  : (Int,Int) -> Boolean = {x,y ->  x  < y }
+
   
 
+
println(array.filterIsInstance<String>())// [hsoub, mostaql, kotlin]
println(array.filterIndexed(predicate)) // [1, 2, 7, 11]
 
 
}
 
}
 
</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/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <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|المجموعة]] كوسيطين.
 +
 
==مصادر==
 
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-indexed.html الدالة  filterIsInstance()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-is-instance.html الدالة  filterIsInstance()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 14:18، 15 مايو 2018

تعيد الدالة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()‎ الممرر إلى الدالة.

مصادر