الفرق بين المراجعتين لصفحة: «Kotlin/collections/associateTo»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>associateTo()</code> في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة <code>associateTo()</code> في لغة Kotlin}}</noinclude> | ||
تعيد الدالة <code>associateTo()</code> | تعيد الدالة <code>associateTo()</code> خريطةً متغيرةً (mutable map) تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر المصفوفة أو المجموعة ([[Kotlin/collections|Collection]]) المعطاة، والمفتاح هو الناتج المعاد من تمرير تلك العناصر إلى الدالة <code>transform</code>. | ||
إن كان لعنصرين نفس المفتاح (key)، فإنَّ الأخير هو الذي سيُضاف إلى الخريطة. | |||
==البنية العامة== | ==البنية العامة== | ||
إن استدعيت الدالة <code>associateTo()</code> مع مصفوفة، فستعيد الخريطة المتغيرة <code>destination</code> التي تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر تلك المصفوفة المعطاة، والمفتاح هو الناتج المعاد من تمرير هذه العناصر إلى الدالة <code>transform</code>:<syntaxhighlight lang="kotlin"> | |||
inline fun <T, K, V, M : MutableMap<in K, in V>> Array<out T>.associateTo( | inline fun <T, K, V, M : MutableMap<in K, in V>> Array<out T>.associateTo( | ||
destination: M, | destination: M, | ||
سطر 43: | سطر 43: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
إن استدعيت الدالة <code>associateTo()</code> مع مجموعة، فستعيد الخريطة المتغيرة <code>destination</code> التي تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر تلك المجموعة المعطاة، والمفتاح هو الناتج المعاد من تمرير هذه العناصر إلى الدالة <code>transform</code>:<syntaxhighlight lang="kotlin"> | |||
inline fun <T, K, V, M : MutableMap<in K, in V>> Iterable<T>.associateTo( | inline fun <T, K, V, M : MutableMap<in K, in V>> Iterable<T>.associateTo( | ||
destination: M, | destination: M, | ||
transform: (T) -> Pair<K, V> | transform: (T) -> Pair<K, V> | ||
): M | ): M | ||
</syntaxhighlight> | </syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]). | ||
==القيم المعادة== | ==القيم المعادة== | ||
خريطةً متغيرةً (mutable map) تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر المصفوفة أو المجموعة ([[Kotlin/collections|Collection]]) المعطاة، والمفتاح هو الناتج المعاد من تمرير تلك العناصر إلى الدالة <code>transform</code>. | |||
==أمثلة== | ==أمثلة== | ||
===استخدام الدالة <code>()associateTo</code> مع | ===استخدام الدالة <code>()associateTo</code> مع القوائم === | ||
تعرِّف الشيفرة الآتية قائمة باسم <code>list</code> مكونة من أربعة أعداد باستخدام الدالة <code>()listOf</code>، ثم تنشئ خريطةً متغيرًا باسم <code>map</code> بتمرير الدالة <code>()func</code> (التي تحول عددًا إلى زوج) إلى <code>()associateTo</code> ثم تطبع الناتج:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val list = listOf(1,2,3,4) | val list = listOf(1,2,3,4) | ||
سطر 64: | سطر 64: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
*<code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/associate|associate()]]</code>: تعيد تعيد خريطةً تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة أو المجموعة ([[Kotlin/collections|Collection]]) إلى الدالة <code>transform</code>. | ||
*<code>[[Kotlin/collections/associateBy|associateBy()]]</code>: تعيد | * | ||
*<code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/associateBy|associateBy()]]</code>: تعيد خريطةً تحتوي على عناصر المصفوفة أو المجموعة المعطاة مُفهرسة بناتج تمرير هذه العناصر إلى الدالة <code>keySelector</code>. | ||
*<code>[[Kotlin/collections/asList|asList()]]</code>: تعيد لائحة | * | ||
*الدالة <code>[[Kotlin/collections/associateByTo|associateByTo()]]</code>: تعيد خريطةً متغيرةً (mutable map) تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر المصفوفة أو المجموعة ([[Kotlin/collections|Collection]]) المعطاة، والمفتاح هو الناتج المعاد من تمرير تلك العناصر إلى الدالة <code>keySelector</code>. | |||
*الدالة <code>[[Kotlin/collections/asList|asList()]]</code>: تعيد لائحة تُغلّف المصفوفة الأصلية. | |||
* <code>[[Kotlin/collections/asIterable|asIterable()]]</code>: تُنشئ نسخة تكرارية (Iterable instance) والتي تُغلّف المصفوفة | * الدالة <code>[[Kotlin/collections/asIterable|asIterable()]]</code>: تُنشئ نسخة تكرارية (Iterable instance) والتي تُغلّف المصفوفة الأصلية وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>). | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/associate-to.html الدالة | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/associate-to.html الدالة associateTo() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Functions]] | [[تصنيف:Kotlin Functions]] |
مراجعة 09:48، 3 يوليو 2018
تعيد الدالة associateTo()
خريطةً متغيرةً (mutable map) تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر المصفوفة أو المجموعة (Collection) المعطاة، والمفتاح هو الناتج المعاد من تمرير تلك العناصر إلى الدالة transform
.
إن كان لعنصرين نفس المفتاح (key)، فإنَّ الأخير هو الذي سيُضاف إلى الخريطة.
البنية العامة
إن استدعيت الدالة associateTo()
مع مصفوفة، فستعيد الخريطة المتغيرة destination
التي تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر تلك المصفوفة المعطاة، والمفتاح هو الناتج المعاد من تمرير هذه العناصر إلى الدالة transform
:
inline fun <T, K, V, M : MutableMap<in K, in V>> Array<out T>.associateTo(
destination: M,
transform: (T) -> Pair<K, V>
): M
inline fun <K, V, M : MutableMap<in K, in V>> ByteArray.associateTo(
destination: M,
transform: (Byte) -> Pair<K, V>
): M
inline fun <K, V, M : MutableMap<in K, in V>> ShortArray.associateTo(
destination: M,
transform: (Short) -> Pair<K, V>
): M
inline fun <K, V, M : MutableMap<in K, in V>> IntArray.associateTo(
destination: M,
transform: (Int) -> Pair<K, V>
): M
inline fun <K, V, M : MutableMap<in K, in V>> LongArray.associateTo(
destination: M,
transform: (Long) -> Pair<K, V>
): M
inline fun <K, V, M : MutableMap<in K, in V>> FloatArray.associateTo(
destination: M,
transform: (Float) -> Pair<K, V>
): M
inline fun <K, V, M : MutableMap<in K, in V>> DoubleArray.associateTo(
destination: M,
transform: (Double) -> Pair<K, V>
): M
inline fun <K, V, M : MutableMap<in K, in V>> BooleanArray.associateTo(
destination: M,
transform: (Boolean) -> Pair<K, V>
): M
inline fun <K, V, M : MutableMap<in K, in V>> CharArray.associateTo(
destination: M,
transform: (Char) -> Pair<K, V>
): M
إن استدعيت الدالة associateTo()
مع مجموعة، فستعيد الخريطة المتغيرة destination
التي تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر تلك المجموعة المعطاة، والمفتاح هو الناتج المعاد من تمرير هذه العناصر إلى الدالة transform
:
inline fun <T, K, V, M : MutableMap<in K, in V>> Iterable<T>.associateTo(
destination: M,
transform: (T) -> Pair<K, V>
): M
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions)).
القيم المعادة
خريطةً متغيرةً (mutable map) تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر المصفوفة أو المجموعة (Collection) المعطاة، والمفتاح هو الناتج المعاد من تمرير تلك العناصر إلى الدالة transform
.
أمثلة
استخدام الدالة ()associateTo
مع القوائم
تعرِّف الشيفرة الآتية قائمة باسم list
مكونة من أربعة أعداد باستخدام الدالة ()listOf
، ثم تنشئ خريطةً متغيرًا باسم map
بتمرير الدالة ()func
(التي تحول عددًا إلى زوج) إلى ()associateTo
ثم تطبع الناتج:
fun main(args: Array<String>) {
val list = listOf(1,2,3,4)
val map = mutableMapOf<Int, Int>()
val func: (Int) -> Pair<Int,Int> = {Pair(it + 10,it * 4)}
list.associateTo(map,func)
println(map) // {11=4, 12=8, 13=12, 14=16}
}
انظر أيضًا
- الدالة
associate()
: تعيد تعيد خريطةً تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة أو المجموعة (Collection) إلى الدالةtransform
. - الدالة
associateBy()
: تعيد خريطةً تحتوي على عناصر المصفوفة أو المجموعة المعطاة مُفهرسة بناتج تمرير هذه العناصر إلى الدالةkeySelector
. - الدالة
associateByTo()
: تعيد خريطةً متغيرةً (mutable map) تحتوي على أزواج من "قيمة/مفتاح"، إذ القيمة هي عناصر المصفوفة أو المجموعة (Collection) المعطاة، والمفتاح هو الناتج المعاد من تمرير تلك العناصر إلى الدالةkeySelector
. - الدالة
asList()
: تعيد لائحة تُغلّف المصفوفة الأصلية.
- الدالة
asIterable()
: تُنشئ نسخة تكرارية (Iterable instance) والتي تُغلّف المصفوفة الأصلية وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثلfor
).