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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
ط
سطر 2: سطر 2:
 
تعيد الدالة <code>associate()‎</code> خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة أو المجموعة ([[Kotlin/collections|Collection]]) إلى الدالة <code>()transform</code>.  
 
تعيد الدالة <code>associate()‎</code> خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة أو المجموعة ([[Kotlin/collections|Collection]]) إلى الدالة <code>()transform</code>.  
  
إن كان لزوجين نفس المفتاح (key)  فالأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بالمصفوفة أو المجموعة الأصليَّة.
+
إن كان لزوجين نفس المفتاح (key)  فالأخير هو الذي سيُضاف إلى الخريطة.
 +
 
 +
تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بالمصفوفة أو المجموعة الأصليَّة.
 
==البنية العامة==
 
==البنية العامة==
تعيد الدالة <code>associate()‎</code> خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة إلى الدالة <code>()transform</code>.<syntaxhighlight lang="kotlin">
+
تعيد الدالة <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>
سطر 32: سطر 34:
 
     transform: (Char) -> Pair<K, V>
 
     transform: (Char) -> Pair<K, V>
 
): Map<K, V>
 
): Map<K, V>
</syntaxhighlight>تعيد الدالة <code>associate()‎</code> خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المجموعة ([[Kotlin/collections|Collection]]) إلى الدالة <code>transform</code>.<syntaxhighlight lang="kotlin">
+
</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>
سطر 39: سطر 41:
  
 
==القيم المعادة==
 
==القيم المعادة==
خريطة.
+
خريطةً تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر مصفوفةٍ أو مجموعةٍ إلى الدالة <code>()transform</code>.
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()associate</code> مع القوائم ===
 
===استخدام الدالة <code>()associate</code> مع القوائم ===
سطر 52: سطر 54:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
*الدالة <code>[[Kotlin/collections/associateBy|associateBy()]]</code>‎: تعيد خريطةً (map).  
+
*الدالة <code>[[Kotlin/collections/associateBy|associateBy()]]</code>‎: تعيد خريطةً (map) تحتوي على عناصر المصفوفة أو المجموعة المعطاة مُفهرسة بناتج تمرير هذه العناصر إلى الدالة <code>keySelector</code>.  
*الدالة <code>[[Kotlin/collections/asList|asList()]]</code>‎: تعيد لائحة والتي تُغلّف المصفوفة الأصليَّة.
+
*الدالة <code>[[Kotlin/collections/asList|asList()]]</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>).
 
* الدالة <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>).

مراجعة 09:05، 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)).

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

خريطةً تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر مصفوفةٍ أو مجموعةٍ إلى الدالة ()transform.

أمثلة

استخدام الدالة ()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) تحتوي على عناصر المصفوفة أو المجموعة المعطاة مُفهرسة بناتج تمرير هذه العناصر إلى الدالة keySelector.
  • الدالة asList()‎: تعيد لائحة والتي تُغلّف المصفوفة الأصليَّة.
  • الدالة asIterable()‎: تُنشئ نسخة تكراريَّة (Iterable instance) تُغلّف المصفوفة الأصلية وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثل for).

مصادر