الفرق بين المراجعتين لصفحة: «Kotlin/collections/associate»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>associate()</code> في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة <code>associate()</code> في لغة Kotlin}}</noinclude> | ||
تعيد الدالة <code>associate()</code> | تعيد الدالة <code>associate()</code> خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة أو المجموعة ([[Kotlin/collections|Collection]]) إلى الدالة <code>()transform</code>. | ||
إن كان لزوجين نفس المفتاح (key) فالأخير هو الذي سيُضاف إلى | إن كان لزوجين نفس المفتاح (key) فالأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بالمصفوفة أو المجموعة الأصليَّة. | ||
==البنية العامة== | ==البنية العامة== | ||
تعيد الدالة <code>associate()</code> | تعيد الدالة <code>associate()</code> خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة إلى الدالة <code>()transform</code>.<syntaxhighlight lang="kotlin"> | ||
inline fun <T, K, V> Array<out T>.associate( | inline fun <T, K, V> Array<out T>.associate( | ||
transform: (T) -> Pair<K, V> | transform: (T) -> Pair<K, V> | ||
سطر 34: | سطر 32: | ||
transform: (Char) -> Pair<K, V> | transform: (Char) -> Pair<K, V> | ||
): Map<K, V> | ): Map<K, V> | ||
</syntaxhighlight>تعيد الدالة <code>associate()</code> | </syntaxhighlight>تعيد الدالة <code>associate()</code> خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المجموعة ([[Kotlin/collections|Collection]]) إلى الدالة <code>transform</code>.<syntaxhighlight lang="kotlin"> | ||
inline fun <T, K, V> Iterable<T>.associate( | inline fun <T, K, V> Iterable<T>.associate( | ||
transform: (T) -> Pair<K, V> | transform: (T) -> Pair<K, V> | ||
): Map<K, V> | ): Map<K, V> | ||
</syntaxhighlight> | </syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]). | ||
==القيم المعادة== | ==القيم المعادة== | ||
خريطة. | |||
==أمثلة== | ==أمثلة== | ||
===استخدام الدالة <code>()associate</code> مع | ===استخدام الدالة <code>()associate</code> مع القوائم === | ||
تعرِّف الشيفرة الآتية قائمة باسم <code>list</code> مكونة من ثلاثة حروف باستخدام الدالة <code>()listOf</code>، ثمَّ تنشئ خريطةً باسم <code>map</code> بتمرير الدالة <code>()toMap</code> إلى <code>()associate</code>التي تحول تلك الحروف إلى زوج مكون من الحرف في الحالة الكبيرة [UpperCase] ومن القيمة العددية له) ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val list = listOf('a','b','c') | val list = listOf('a','b','c') | ||
سطر 54: | سطر 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
*<code>[[Kotlin/collections/associateBy|associateBy()]]</code>: تعيد | *الدالة <code>[[Kotlin/collections/associateBy|associateBy()]]</code>: تعيد خريطةً (map). | ||
*<code>[[Kotlin/collections/asList|asList()]]</code>: تعيد لائحة والتي تُغلّف المصفوفة | *الدالة <code>[[Kotlin/collections/asList|asList()]]</code>: تعيد لائحة والتي تُغلّف المصفوفة الأصليَّة. | ||
* <code>[[Kotlin/collections/asIterable|asIterable()]]</code>: تُنشئ نسخة | * الدالة <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>). | ||
==مصادر== | ==مصادر== |
مراجعة 08:12، 3 يوليو 2018
تعيد الدالة associate()
خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة أو المجموعة (Collection) إلى الدالة ()transform
.
إن كان لزوجين نفس المفتاح (key) فالأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بالمصفوفة أو المجموعة الأصليَّة.
البنية العامة
تعيد الدالة associate()
خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة إلى الدالة ()transform
.
inline fun <T, K, V> Array<out T>.associate(
transform: (T) -> Pair<K, V>
): Map<K, V>
inline fun <K, V> ByteArray.associate(
transform: (Byte) -> Pair<K, V>
): Map<K, V>
inline fun <K, V> ShortArray.associate(
transform: (Short) -> Pair<K, V>
): Map<K, V>
inline fun <K, V> IntArray.associate(
transform: (Int) -> Pair<K, V>
): Map<K, V>
inline fun <K, V> LongArray.associate(
transform: (Long) -> Pair<K, V>
): Map<K, V>
inline fun <K, V> FloatArray.associate(
transform: (Float) -> Pair<K, V>
): Map<K, V>
inline fun <K, V> DoubleArray.associate(
transform: (Double) -> Pair<K, V>
): Map<K, V>
inline fun <K, V> BooleanArray.associate(
transform: (Boolean) -> Pair<K, V>
): Map<K, V>
inline fun <K, V> CharArray.associate(
transform: (Char) -> Pair<K, V>
): Map<K, V>
تعيد الدالة associate()
خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المجموعة (Collection) إلى الدالة transform
.
inline fun <T, K, V> Iterable<T>.associate(
transform: (T) -> Pair<K, V>
): Map<K, V>
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions)).
القيم المعادة
خريطة.
أمثلة
استخدام الدالة ()associate
مع القوائم
تعرِّف الشيفرة الآتية قائمة باسم list
مكونة من ثلاثة حروف باستخدام الدالة ()listOf
، ثمَّ تنشئ خريطةً باسم map
بتمرير الدالة ()toMap
إلى ()associate
التي تحول تلك الحروف إلى زوج مكون من الحرف في الحالة الكبيرة [UpperCase] ومن القيمة العددية له) ثمَّ تطبع الناتج:
fun main(args: Array<String>) {
val list = listOf('a','b','c')
val toMap: (Char) -> Pair<Char,Int> = {Pair(it.toUpperCase(),it.toInt())}
val map = list.associate(toMap)
println(map) // {A=97, B=98, C=99}
}
انظر أيضًا
- الدالة
associateBy()
: تعيد خريطةً (map). - الدالة
asList()
: تعيد لائحة والتي تُغلّف المصفوفة الأصليَّة.
- الدالة
asIterable()
: تُنشئ نسخة تكراريَّة (Iterable instance) تُغلّف المصفوفة الأصلية وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثلfor
).