الفرق بين المراجعتين لصفحة: «Kotlin/collections/filterIndexed»
< Kotlin | collections
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(9 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
ترشِّح الدالة <code>filterIndexed()</code> عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة بناءً على فهرس العنصر وقيمته. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
سطر 34: | سطر 32: | ||
predicate: (index: Int, T) -> Boolean | predicate: (index: Int, T) -> Boolean | ||
): List<T> | ): List<T> | ||
</syntaxhighlight> | </syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]]). | ||
== | |||
== المعاملات == | |||
=== <code>predicate</code> === | |||
دالةٌ تمثل الشرط المراد تطبيقه على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة. يمرر إلى هذه الدالة فهرس العنصر وقيمته أيضًا وتعيد قيمة منطقية. | |||
==القيم المعادة== | |||
تُعاد [[Kotlin/collections/List|قائمة]] تحوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي أعيدت القيمة <code>true</code> معها عند تطبيق الدالة <code>predicate</code> عليها. | |||
==أمثلة== | ==أمثلة== | ||
تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code> باستخدام الدالة <code>()arrayOf</code> ثمَّ تعرِّف الدالة <code>()predicate</code> لاستعمالها مع الدالة <code>()filterIndexed</code> في ترشيح العناصر التي فهرسها أصغر من قيمتها:<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(1, 2, 1, 7, 3, 11) | ||
val predicate | val predicate: (Int, Int) -> Boolean = { x, y -> x < y } | ||
println(array.filterIndexed(predicate)) // [1, 2, 7, 11] | println(array.filterIndexed(predicate)) // [1, 2, 7, 11] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
*<code>[[Kotlin/collections/filter|filter()]]</code>: | * الدالة <code>[[Kotlin/collections/filterIndexedTo|filterIndexedTo()]]</code>: تضيف إلى المجموعة المتغيرة <code>destination</code> المُمرَّر إليها عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي أعيدت القيمة <code>true</code> مع كل عنصر منها عند تطبيق الدالة <code>predicate()</code> المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()</code> ثم تعيد بدورها قيمة منطقيَّة. | ||
*الدالة [[Kotlin/collections/filter|<code>filter()</code>]]: ترشِّح عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها. | |||
* الدالة <code>[[Kotlin/collections/mapIndexed|mapIndexed()]]</code>: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها. | |||
*الدالة <code>[[Kotlin/collections/drop|drop()]]</code>: تعيد قائمة تحوي جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/Array|المجموعة]] التي استُدعيت معها باستثناء آخر <code>n</code> عنصر. | |||
*الدالة <code>[[Kotlin/collections/elementAt|elementAt()]]</code>: تجلب عنصرًا ذي فهرس معيَّن من <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/Array|المجموعة]] التي استُدعيت معها. | |||
*الدالة <code>[[Kotlin/collections/fill|fill()]]</code>: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في المصفوفة أو القائمة التي تستدعى معها. | |||
* الدالة <code>[[Kotlin/collections/mapIndexed|mapIndexed()]]</code>: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها. | |||
==مصادر== | ==مصادر== | ||
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-indexed.html الدالة | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-indexed.html صفحة الدالة filterIndexed() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]<noinclude>{{DISPLAYTITLE: الدالة <code>filterIndexed()</code> في Kotlin}}</noinclude> | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Collection]] |
المراجعة الحالية بتاريخ 07:53، 8 سبتمبر 2018
ترشِّح الدالة filterIndexed()
عناصر المصفوفة أو المجموعة المعطاة بناءً على فهرس العنصر وقيمته.
البنية العامة
inline fun <T> Array<out T>.filterIndexed(
predicate: (index: Int, T) -> Boolean
): List<T>
inline fun ByteArray.filterIndexed(
predicate: (index: Int, Byte) -> Boolean
): List<Byte>
inline fun ShortArray.filterIndexed(
predicate: (index: Int, Short) -> Boolean
): List<Short>
inline fun IntArray.filterIndexed(
predicate: (index: Int, Int) -> Boolean
): 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>
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع توثيق الدوال المباشرة).
المعاملات
predicate
دالةٌ تمثل الشرط المراد تطبيقه على كل عنصر من عناصر المصفوفة أو المجموعة المعطاة. يمرر إلى هذه الدالة فهرس العنصر وقيمته أيضًا وتعيد قيمة منطقية.
القيم المعادة
تُعاد قائمة تحوي عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true
معها عند تطبيق الدالة predicate
عليها.
أمثلة
تعرِّف الشيفرة الآتية مصفوفة باسم array
باستخدام الدالة ()arrayOf
ثمَّ تعرِّف الدالة ()predicate
لاستعمالها مع الدالة ()filterIndexed
في ترشيح العناصر التي فهرسها أصغر من قيمتها:
fun main(args: Array<String>) {
val array = arrayOf(1, 2, 1, 7, 3, 11)
val predicate: (Int, Int) -> Boolean = { x, y -> x < y }
println(array.filterIndexed(predicate)) // [1, 2, 7, 11]
}
انظر أيضًا
- الدالة
filterIndexedTo()
: تضيف إلى المجموعة المتغيرةdestination
المُمرَّر إليها عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمةtrue
مع كل عنصر منها عند تطبيق الدالةpredicate()
المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالةpredicate()
ثم تعيد بدورها قيمة منطقيَّة. - الدالة
filter()
: ترشِّح عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها. - الدالة
mapIndexed()
: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها. - الدالة
drop()
: تعيد قائمة تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء آخرn
عنصر. - الدالة
elementAt()
: تجلب عنصرًا ذي فهرس معيَّن من المصفوفة أو المجموعة التي استُدعيت معها. - الدالة
fill()
: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في المصفوفة أو القائمة التي تستدعى معها. - الدالة
mapIndexed()
: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها.