الفرق بين المراجعتين لصفحة: «Kotlin/collections/filterIndexed»
< Kotlin | collections
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
جميل-بيلوني (نقاش | مساهمات) ط تدقيق الأمثلة. |
||
سطر 39: | سطر 39: | ||
تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code> باستخدام الدالة <code>()arrayOf</code> ثمَّ تعرِّف الدالة <code>()predicate</code> لاستعمالها مع الدالة <code>()filterIndexed</code> في ترشيح العناصر التي فهرسها أصغر من قيمتها:<syntaxhighlight lang="kotlin"> | تعرِّف الشيفرة الآتية [[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] |
مراجعة 10:37، 5 يوليو 2018
ترشِّح الدالة filterIndexed()
عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true
معها عند تطبيق الدالة predicate()
المُمرّر عليها، إذ يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()
ثم تعيد بدورها قيمة منطقيَّة.
البنية العامة
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
يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع توثيق الدوال المباشرة).
القيم المعادة
تُعاد قائمة تحوي عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true
معها عند تطبيق الدالة predicate()
المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()
ثم تعيد بدورها قيمة منطقيَّة.
أمثلة
استخدام الدالة ()filterIndexed
مع المصفوفات
تعرِّف الشيفرة الآتية مصفوفة باسم 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]
}
انظر أيضًا
- الدالة
drop()
: تعيد قائمة تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء آخرn
عنصر. - الدالة
elementAt()
: تجلب عنصرًا ذي فهرس معيَّن من المصفوفة أو المجموعة التي استُدعيت معها. - الدالة
filter()
: ترشِّح عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها. - الدالة
fill()
: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في المصفوفة أو القائمة التي تستدعى معها.