الفرق بين المراجعتين ل"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
).