الفرق بين المراجعتين لصفحة: «Kotlin/collections/toMap»

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
 
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>toMap()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>toMap()‎</code> في Kotlin}}</noinclude>
تعيد الدالة<code>toMap()‎</code> [[Kotlin/Map|قاموسًا]] بحسب نوع إمضاء الدالة (انظر فقرة البنية العامة من أجل التفاصيل).
تحول الدالة <code>toMap()‎</code> الكائن المستدعى معها إلى خريطة أو تضيف محتوى ذلك الكائن إلى خريطة موجودة مسبقًا.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
إن استدعيت الدالة <code>toMap()‎</code> مع [[Kotlin/Array|مصفوفة]] أو [[Kotlin/Iterable|مجموعة تكرارية]] أو [[Kotlin/Sequence|سلسلة]] مكونة من أزواج، فستعيد [[Kotlin/collections/Map|خريطة]] تحوي كل تلك الأزواج؛ تحافظ [[Kotlin/Map|الخريطة]] المُعادة على نفس ترتيب تكرار الخريطة الأصلية:<syntaxhighlight lang="kotlin">
fun <K, V> Iterable<Pair<K, V>>.toMap(): Map<K, V>  
fun <K, V> Iterable<Pair<K, V>>.toMap(): Map<K, V>  
fun <K, V> Array<out Pair<K, V>>.toMap(): Map<K, V>  
fun <K, V> Array<out Pair<K, V>>.toMap(): Map<K, V>  
سطر 8: سطر 8:




</syntaxhighlight>في حال استدعاء الدالة <code>toMap()‎</code> عبر [[Kotlin/Array|مصفوفة]]  أو  [[Kotlin/Iterable|مجموعة تكرارية]] أو [[Kotlin/Sequence|سلسلة]] مكونة من أزواج فستعيد [[Kotlin/Map|قاموسًا]] يضم كل تلك الأزواج، [[Kotlin/Map|القاموس]] يحافظ على ترتيب التكرار الأصلي. <syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت الدالة <code>toMap()‎</code> مع [[Kotlin/Array|مصفوفة]] أو [[Kotlin/Iterable|مجموعة تكرارية]] أو [[Kotlin/Sequence|سلسلة]] مكونة من أزواج ومع تمرير [[Kotlin/collections/MutableMap|الخريطة المتغيرة]] <code>destination</code> كوسيط إليها، فستضيف تلك الأزواج إلى هذه الخريطة المعطاة ثم تعيدها:<syntaxhighlight lang="kotlin">
fun <K, V, M : MutableMap<in K, in V>> Iterable<Pair<K, V>>.toMap(
fun <K, V, M : MutableMap<in K, in V>> Iterable<Pair<K, V>>.toMap(
     destination: M
     destination: M
سطر 18: سطر 18:
     destination: M
     destination: M
): M
): M
</syntaxhighlight>في حال استدعاء الدالة <code>toMap()‎</code> عبر [[Kotlin/Array|مصفوفة]]  أو  [[Kotlin/Iterable|مجموعة تكرارية]] أو [[Kotlin/Sequence|سلسلة]] مكونة من أزواج مع تمرير [[Kotlin/MutableMap|قاموس متغير]]  كوسيط فستملأ [[Kotlin/Map|القاموس]] المُمرّر بتلك الأزواج.<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت الدالة <code>toMap()‎</code> مع [[Kotlin/Map|خريطة]]، فستعيد [[Kotlin/collections/Map|خريطة]] جديدة للقراء فقط (read-only) تحوي جميع أزواج الخريطة الأصلية المعطاة؛ تحافظ [[Kotlin/Map|الخريطة]] المُعادة على نفس ترتيب تكرار الخريطة الأصلية:<syntaxhighlight lang="kotlin">
fun <K, V> Map<out K, V>.toMap(): Map<K, V>  
fun <K, V> Map<out K, V>.toMap(): Map<K, V>  


</syntaxhighlight>في حال استدعاء الدالة <code>toMap()‎</code> عبر  [[Kotlin/Map|قاموس]] فستعيد [[Kotlin/Map|قاموسًا]] للقراء فقط (read-only) يضم كل الأزواج الموجودة في [[Kotlin/Map|القاموس]].
</syntaxhighlight>أمَّا إن استدعيت الدالة <code>toMap()‎</code> مع [[Kotlin/collections/Map|خريطة]] ومع تمرير [[Kotlin/collections/MutableMap|الخريطة المتغيرة]] <code>destination</code> كوسيط إليها، فستضيف أزواج تلك الخريطة الأصلية إلى الخريطة <code>destinations</code> المعطاة ثم تعيدها.<syntaxhighlight lang="kotlin">
 
[[Kotlin/Map|القاموس]] يحافظ على ترتيب التكرار الأصلي. <syntaxhighlight lang="kotlin">
fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.toMap(
fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.toMap(
     destination: M
     destination: M
): M
): M
</syntaxhighlight>في حال استدعاء الدالة <code>toMap()‎</code> عبر [[Kotlin/Map|قاموس]] مع تمرير [[Kotlin/MutableMap|قاموس متغير]]  كوسيط فستملأ [[Kotlin/Map|القاموس]] المُمرّر بالأزواج الموجودة في [[Kotlin/Map|القاموس]].
</syntaxhighlight>
 
==القيمة المعادة==
==القيمة المُعادة==
تُعاد خريطة جديدة تحوي جميع محتويات الكائن المعطى إن لم يمرَّر الوسيط <code>destinations</code>، أو يُعاد الوسيط <code>destination</code> بعد إضافة محتويات الكائن المعطى إليه.
[[Kotlin/Map|قاموس]] جديد. (انظر فقرة البنية العامة لأجل التفاصيل)
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()toMap</code> مع المصفوفات===
<nowiki/>استعمال الدالة <code>()toMap</code> لتحويل مصفوفة مكونة من أزواج إلى خريطة:<syntaxhighlight lang="kotlin">
تعرّف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>  مكونة من ثلاثة أزواج باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة<code>()toMap</code> على <code>array</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val array = arrayOf(Pair(1, "x"), Pair(2, "y"), Pair(3, "z"))
    val array = arrayOf(Pair(1, "x"), Pair(2, "y"), Pair(3, "z"))


println(array.toMap()) // {1=x, 2=y, 3=z}
    println(array.toMap()) // {1=x, 2=y, 3=z}
    println(array.toMap().javaClass.kotlin.qualifiedName) // java.util.LinkedHashMap
}
}
</syntaxhighlight>
</syntaxhighlight>
==أنظر أيضًا==
==انظر أيضًا==
*<code>[[Kotlin/collections/toBooleanArray|toBooleanArray()]]</code>‎ : تعيد [[Kotlin/Array|مصفوفة]] من القيم المنطقية (من النوع <code>BooleanArray</code>) تضم جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع<code>Array<out Boolean>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها.
* الدالة <code>[[Kotlin/collections/toBooleanArray|toBooleanArray()]]</code>: تحول <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<out Boolean>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى <nowiki/>[[Kotlin/Array|مصفوفة]] من القيم المنطقية (من النوع <code>[[Kotlin/BooleanArray/index|BooleanArray]]</code>).
*<code>[[Kotlin/collections/toByteArray|toByteArray()]]</code>‎ : تعيد <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>ByteArray</code>تضم جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Byte>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها.
* الدالة <code>[[Kotlin/collections/toByteArray|toByteArray()]]</code>‎ : تحوِّل <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Byte>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>ByteArray</code>.
*<code>[[Kotlin/collections/toDoubleArray|toDoubleArray()]]</code>‎ : تعيد [[Kotlin/Array|مصفوفة]] من  النوع <code>DoubleArray</code>تضم جميع عناصر [[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Double>‎</code>) أو  [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها.
* الدالة <code>[[Kotlin/collections/toCharArray|toCharArray()‎]]</code>: تحول <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي التي من النوع <code>Array<Char>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]]  التي استُدعيت معها إلى <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>[[Kotlin/CharArray/index|CharArray]]</code>.
*<code>[[Kotlin/collections/toList|toList()]]</code>‎ : تعيد لائحة تضم جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]]  أو المجموعة التكرارية  التي استُدعيت عبرها. وفي حال استدعاء الدالة <code>toList()‎</code>  عبر قاموس فستعيد لائحة تضم جميع الأزواج مفتاح/قيمة المنتمية إليه.
* الدالة <code>[[Kotlin/collections/toCollection|toCollection()‎]]</code>: تضيف جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى المجموعة المتغيرة (MutableCollection) المُمرّرة إليها.
* الدالة <code>[[Kotlin/collections/toDoubleArray|toDoubleArray()]]</code>‎ : تحول <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Double>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>[[Kotlin/DoubleArray/index|DoubleArray]]</code>.
* الدالة <code>[[Kotlin/collections/toFloatArray|toFloatArray()‎]]</code>: تحول <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Float>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]]  التي استُدعيت معها <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>[[Kotlin/FloatArray/index|FloatArray]]</code>.
* الدالة <code>[[Kotlin/collections/toHashSet|toHashSet()]]</code>: تعيد كائنًا من النوع <code>HashSet</code> لجميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها.
* الدالة <code>[[Kotlin/collections/toIntArray|toIntArray()‎]]</code>: تحول <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Int>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>IntArray</code>.
* الدالة <code>[[Kotlin/collections/toList|toList()]]</code>: تحول <nowiki/>[[Kotlin/Array|المصفوفة]] أو المجموعة التكرارية أو الخريطة التي استُدعيت معها إلى قائمة.
* الدالة <code>[[Kotlin/collections/toLongArray|toLongArray()‎]]</code>: تحول <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Long>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>LongArray</code>.
 
 
*الدالة <code>[[Kotlin/collections/toMutableList|toMutableList()‎]]</code>: تحول [[Kotlin/Array|المصفوف]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى [[Kotlin/MutableList|قائمة متغيرة]]. 
*الدالة <code>[[Kotlin/collections/toMutableSet|toMutableSet()‎]]</code>: تحول [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت معها إلى مجموعة من النوع <code>MutableSet</code>.
*الدالة <code>[[Kotlin/collections/toSet|toSet()‎]]</code>: تحول [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت معها إلى مجموعة من النوع <code>[[Kotlin/Set|Set]]</code>.
*الدالة <code>[[Kotlin/collections/toShortArray|toShortArray()‎]]</code>: تحول [[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Short>‎</code>) أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى [[Kotlin/Array|مصفوفة]] من النوع <code>ShortArray</code>.
*الدالة <code>[[Kotlin/collections/toSortedSet|toSortedSet()‎]]</code>: تحول [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت معها إلى مجموعة من النوع [[Kotlin/SortedSet|<code>SortedSet</code>]] ثمَّ تعيدها فقط إن لم يمرَّر إليها أي شيء، أو ترتِّبها وفقًا لترتيب معيَّن ثمَّ تعيدها إن مرِّرت إليها دالة مقارنة.
 
==مصادر==
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/to-map.html الدالة  toMap()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/to-map.html صفحة الدالة toMap()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Collection]]

المراجعة الحالية بتاريخ 11:46، 8 سبتمبر 2018

تحول الدالة toMap()‎ الكائن المستدعى معها إلى خريطة أو تضيف محتوى ذلك الكائن إلى خريطة موجودة مسبقًا.

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

إن استدعيت الدالة toMap()‎ مع مصفوفة أو مجموعة تكرارية أو سلسلة مكونة من أزواج، فستعيد خريطة تحوي كل تلك الأزواج؛ تحافظ الخريطة المُعادة على نفس ترتيب تكرار الخريطة الأصلية:

fun <K, V> Iterable<Pair<K, V>>.toMap(): Map<K, V> 
fun <K, V> Array<out Pair<K, V>>.toMap(): Map<K, V> 
fun <K, V> Sequence<Pair<K, V>>.toMap(): Map<K, V>

وإن استدعيت الدالة toMap()‎ مع مصفوفة أو مجموعة تكرارية أو سلسلة مكونة من أزواج ومع تمرير الخريطة المتغيرة destination كوسيط إليها، فستضيف تلك الأزواج إلى هذه الخريطة المعطاة ثم تعيدها:

fun <K, V, M : MutableMap<in K, in V>> Iterable<Pair<K, V>>.toMap(
    destination: M
): M
fun <K, V, M : MutableMap<in K, in V>> Array<out Pair<K, V>>.toMap(
    destination: M
): M
fun <K, V, M : MutableMap<in K, in V>> Sequence<Pair<K, V>>.toMap(
    destination: M
): M

وإن استدعيت الدالة toMap()‎ مع خريطة، فستعيد خريطة جديدة للقراء فقط (read-only) تحوي جميع أزواج الخريطة الأصلية المعطاة؛ تحافظ الخريطة المُعادة على نفس ترتيب تكرار الخريطة الأصلية:

fun <K, V> Map<out K, V>.toMap(): Map<K, V>

أمَّا إن استدعيت الدالة toMap()‎ مع خريطة ومع تمرير الخريطة المتغيرة destination كوسيط إليها، فستضيف أزواج تلك الخريطة الأصلية إلى الخريطة destinations المعطاة ثم تعيدها.

fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.toMap(
    destination: M
): M

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

تُعاد خريطة جديدة تحوي جميع محتويات الكائن المعطى إن لم يمرَّر الوسيط destinations، أو يُعاد الوسيط destination بعد إضافة محتويات الكائن المعطى إليه.

أمثلة

استعمال الدالة ()toMap لتحويل مصفوفة مكونة من أزواج إلى خريطة:

fun main(args: Array<String>) {
    val array = arrayOf(Pair(1, "x"), Pair(2, "y"), Pair(3, "z"))

    println(array.toMap()) // {1=x, 2=y, 3=z}
    println(array.toMap().javaClass.kotlin.qualifiedName) // java.util.LinkedHashMap
}

انظر أيضًا


مصادر