الفرق بين المراجعتين لصفحة: «Kotlin/collections/filterIndexedTo»
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
جميل-بيلوني (نقاش | مساهمات) ط تدقيق الأمثلة. |
||
سطر 53: | سطر 53: | ||
تعرِّف الشيفرة الآتية [[Kotlin/List|قائمتين]] متغيرتين (mutableList) باسم <code>list</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا ثمَّ تستخدم الدالة <code>()filterIndexedTo</code> لترشيح عناصر القائمة الأولى وإضافتها إلى عناصر القائمة الثانية:<syntaxhighlight lang="kotlin"> | تعرِّف الشيفرة الآتية [[Kotlin/List|قائمتين]] متغيرتين (mutableList) باسم <code>list</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا ثمَّ تستخدم الدالة <code>()filterIndexedTo</code> لترشيح عناصر القائمة الأولى وإضافتها إلى عناصر القائمة الثانية:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val list = mutableListOf(1, 2, 3, 2, 5, 1) | val list = mutableListOf(1, 2, 3, 2, 5, 1) | ||
val list2 = mutableListOf(0) | val list2 = mutableListOf(0) | ||
val predicate | val predicate: (Int, Int) -> Boolean = { x, y -> x < y } | ||
list.filterIndexedTo(list2, predicate) | list.filterIndexedTo(list2, predicate) | ||
println(list2)// [0, 1, 2, 3, 5] | println(list2)// [0, 1, 2, 3, 5] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
مراجعة 10:39، 5 يوليو 2018
تضيف الدالة filterIndexedTo()
إلى المجموعة المتغيرة destination
المُمرَّر إليها عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true
مع كل عنصر منها عند تطبيق الدالة predicate()
المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()
ثم تعيد بدورها قيمة منطقيَّة.
البنية العامة
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterIndexedTo(
destination: C,
predicate: (index: Int, T) -> Boolean
): C
inline fun <C : MutableCollection<in Byte>> ByteArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Byte) -> Boolean
): C
inline fun <C : MutableCollection<in Short>> ShortArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Short) -> Boolean
): C
inline fun <C : MutableCollection<in Int>> IntArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Int) -> Boolean
): C
inline fun <C : MutableCollection<in Long>> LongArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Long) -> Boolean
): C
inline fun <C : MutableCollection<in Float>> FloatArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Float) -> Boolean
): C
inline fun <C : MutableCollection<in Double>> DoubleArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Double) -> Boolean
): C
inline fun <C : MutableCollection<in Boolean>> BooleanArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Boolean) -> Boolean
): C
inline fun <C : MutableCollection<in Char>> CharArray.filterIndexedTo(
destination: C,
predicate: (index: Int, Char) -> Boolean
): C
inline fun <T, C : MutableCollection<in T>> Iterable<T>.filterIndexedTo(
destination: C,
predicate: (index: Int, T) -> Boolean
): C
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع توثيق الدوال المباشرة).
القيم المعادة
تُعاد عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true
معها عند تطبيق الدالة predicate()
المُمرّر عليها والتي أضيفت إلى المعامل destination
.
أمثلة
استخدام الدالة ()filterIndexedTo
مع القوائم المتغيرة
تعرِّف الشيفرة الآتية قائمتين متغيرتين (mutableList) باسم list
و list2
باستخدام الدالة ()mutableListOf
، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا ثمَّ تستخدم الدالة ()filterIndexedTo
لترشيح عناصر القائمة الأولى وإضافتها إلى عناصر القائمة الثانية:
fun main(args: Array<String>) {
val list = mutableListOf(1, 2, 3, 2, 5, 1)
val list2 = mutableListOf(0)
val predicate: (Int, Int) -> Boolean = { x, y -> x < y }
list.filterIndexedTo(list2, predicate)
println(list2)// [0, 1, 2, 3, 5]
}
انظر أيضًا
- الدالة
filter()
: ترشِّح عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها.
- الدالة
filterIndexed()
: ترشِّح ترشِّح عناصر المصفوفة أو المجموعة المعطاة التي تُعاد القيمةtrue
معها عند تطبيق الدالةpredicate()
المُمرّر عليها، إذ يمرَّر فهرس كل عنصر وقيمته إلى الدالةpredicate()
ثم تعيد بدورها قيمة منطقيَّة. - الدالة
filterIsInstanceTo()
: تضيف عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن إلى المجموعة المتغيرةdestination
المُمرّرة إليها. - الدالة
drop()
: تعيد قائمة تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء آخرn
عنصر.