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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>mapIndexed()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>mapIndexed()‎</code> Kotlin/collec...')
(لا فرق)

مراجعة 14:54، 29 مايو 2018


تعيد الدالةmapIndexed()‎ لائحة تضم ناتج تطبيق الدالة transform()‎ المُمرّرة إليها على عناصر المصفوفة أو المجموعة التي استُدعيت عبرها، وفي حال استدعاء الدالة mapIndexed()‎ على قاموس فستعيد لائحة تضم ناتج تطبيق الدالة transform()‎ على مداخل (entries) القاموس.

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

يمكن استدعاء الدالةmap()‎ على المصفوفات.

inline fun <T, R> Array<out T>.map(
    transform: (T) -> R
): List<R> 
inline fun <R> ByteArray.map(transform: (Byte) -> R): List<R> 
inline fun <R> ShortArray.map(
    transform: (Short) -> R
): List<R> 
inline fun <R> IntArray.map(transform: (Int) -> R): List<R> 
inline fun <R> LongArray.map(transform: (Long) -> R): List<R> 
inline fun <R> FloatArray.map(
    transform: (Float) -> R
): List<R> 
inline fun <R> DoubleArray.map(
    transform: (Double) -> R
): List<R> 
inline fun <R> BooleanArray.map(
    transform: (Boolean) -> R
): List<R> 
inline fun <R> CharArray.map(transform: (Char) -> R): List<R>

يمكن استدعاء الدالةmap()‎ على المجموعات.

inline fun <T, R> Iterable<T>.map(
    transform: (T) -> R
): List<R>

يمكن استدعاء الدالةmap()‎ على القواميس.

inline fun <K, V, R> Map<out K, V>.map(
    transform: (Entry<K, V>) -> R
): List<R>

يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).

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

تعيد الدالةmapIndexed()‎ لائحة تضم ناتج تطبيق الدالة المُمرّرة transform()‎ المُمرّرة إليها على عناصر المصفوفة أو المجموعة التي استُدعيت عبرها، وفي حال استدعاء الدالة map()‎ على قاموس فستعيد لائحة تضم ناتج تطبيق الدالة transform()‎ على مداخل (entries) القاموس.

أمثلة

استخدام الدالة ()mapIndexed مع القواميس

تعرف الشيفرة الآتية قاموسًا باسم mمكونًا من ثلاثة أزواج باستخدام الدالة ()mapOf، ثم تُعرّف الدالة ()func، ثم تستخدم الدالة ()mapIndexed بتمرير ()func كمعامل، ثم تطبع الناتج:

fun main(args: Array<String>) {
val m = mapOf("x" to 2, "y" to 6, "z" to 5)
val func : (Int) -> Array<Int> = { arrayOf(it)}

println(m.map { (a, b) -> listOf(a) }) // [[x], [y], [z]]
}

انظر أيضًا

مصادر