الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/associate»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) مراجعة وتدقيق. |
||
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code> | <noinclude>{{DISPLAYTITLE: الدالة <code>CharSequence.associate()</code> في Kotlin}}</noinclude> | ||
تعيد الدالة <code>associate()</code> [[Kotlin/Map| | تعيد الدالة <code>associate()</code> [[Kotlin/collections/Map|خريطة]] (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير محارف [[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها إلى الدالة الممررة إليها. | ||
إن كان لزوجين نفس المفتاح (key) | إن كان لزوجين نفس المفتاح (key)، فالأخير هو الذي سيُضاف إلى [[Kotlin/collections/Map|الخريطة]]. | ||
تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص [[Kotlin/CharSequence|بسلسلة المحارف]] الأصليَّة. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
سطر 10: | سطر 11: | ||
transform: (Char) -> Pair<K, V> | transform: (Char) -> Pair<K, V> | ||
): Map<K, V> | ): Map<K, V> | ||
</syntaxhighlight> | </syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]). | ||
== المعاملات == | |||
=== <code>transform</code> === | |||
دالةٌ يمرر إليها كل محرف من محارف سلسلة المحارف المعطاة وتعيد خريطة تحتوي أزواجًا من "مفتاح/قيمة". | |||
==القيم المعادة== | ==القيم المعادة== | ||
[[Kotlin/ | تعاد خريطةً تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير محارف [[Kotlin/CharSequence|سلسلة المحارف]] المعطاة إلى الدالة <code>()transform</code>. | ||
==أمثلة== | ==أمثلة== | ||
تعرِّف الشيفرة التالية سلسلة من المحارف باسم <code>str</code> ثمَّ تنشأ [[Kotlin/Map|خريطةً]] باسم <code>map</code> بتمرير الدالة <code>()toMap</code> إلى <code>()associate</code> التي تحول محارف تلك السلسلة إلى زوج مكون من المحرف في الحالة الكبيرة (UpperCase) ومن قيمته العددية المقابلة له:<syntaxhighlight lang="kotlin"> | |||
تعرِّف الشيفرة | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val str = "hsoub" | val str = "hsoub" | ||
val toMap: (Char) -> Pair<Char, Int> = { | val toMap: (Char) -> Pair<Char, Int> = { | ||
Pair(it.toUpperCase(), it.toInt()) | Pair(it.toUpperCase(), it.toInt()) | ||
} | } | ||
سطر 27: | سطر 33: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* <code>[[Kotlin/kotlin.text/ | *الدالة <code>[[Kotlin/kotlin.text/associateTo|associateTo()]]</code>: تشبه الدالة <code>associate()</code> تمامًا باستثناء أنها تضيف الناتج الذي تعيده إلى خريطة موجودة مسبقًا. | ||
*الدالة <code>[[Kotlin/kotlin.text/associateBy|associateBy()]]</code>: تعيد [[Kotlin/collections/Map|خريطةً]] (map) مكونة من الأزواج "مفتاح/قيمة"، إذ يكون المفتاح (key) هو الناتج الذي تعيده الدالة <code>keySelector</code> الممررة إليها وتكون القيمة (value) المقابلة لذلك المفتاح هي إمَّا محارف [[Kotlin/CharSequence|سلسلة المحارف]] المعطاة أو الناتج الذي تعيده الدالة <code>valueTransform</code> الممررة. | |||
* <code>[[Kotlin/kotlin.text/ | *الدالة <code>[[Kotlin/kotlin.text/asIterable|asIterable()]]</code>: تنشئ نسخةً من الواجهة <code>[[Kotlin/collections/Iterable|Iterable]]</code> التي تغلّف [[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها لاستعمالها في الحلقات التكرارية، إذ تعيد محارفها عندما تُستخدَم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>). | ||
* <code>[[Kotlin/kotlin.text/ | |||
==مصادر== | ==مصادر== | ||
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/associate.html الدالة | *[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/associate.html صفحة الدالة CharSequence.associate() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Text]] | |||
[[تصنيف:Kotlin CharSequence]] |
المراجعة الحالية بتاريخ 06:54، 2 سبتمبر 2018
تعيد الدالة associate()
خريطة (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير محارف سلسلة المحارف التي استُدعيت معها إلى الدالة الممررة إليها.
إن كان لزوجين نفس المفتاح (key)، فالأخير هو الذي سيُضاف إلى الخريطة.
تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بسلسلة المحارف الأصليَّة.
البنية العامة
inline fun <K, V> CharSequence.associate(
transform: (Char) -> Pair<K, V>
): Map<K, V>
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions)).
المعاملات
transform
دالةٌ يمرر إليها كل محرف من محارف سلسلة المحارف المعطاة وتعيد خريطة تحتوي أزواجًا من "مفتاح/قيمة".
القيم المعادة
تعاد خريطةً تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير محارف سلسلة المحارف المعطاة إلى الدالة ()transform
.
أمثلة
تعرِّف الشيفرة التالية سلسلة من المحارف باسم str
ثمَّ تنشأ خريطةً باسم map
بتمرير الدالة ()toMap
إلى ()associate
التي تحول محارف تلك السلسلة إلى زوج مكون من المحرف في الحالة الكبيرة (UpperCase) ومن قيمته العددية المقابلة له:
fun main(args: Array<String>) {
val str = "hsoub"
val toMap: (Char) -> Pair<Char, Int> = {
Pair(it.toUpperCase(), it.toInt())
}
val map = str.associate(toMap)
println(map) // {H=104, S=115, O=111, U=117, B=98}
}
انظر أيضًا
- الدالة
associateTo()
: تشبه الدالةassociate()
تمامًا باستثناء أنها تضيف الناتج الذي تعيده إلى خريطة موجودة مسبقًا. - الدالة
associateBy()
: تعيد خريطةً (map) مكونة من الأزواج "مفتاح/قيمة"، إذ يكون المفتاح (key) هو الناتج الذي تعيده الدالةkeySelector
الممررة إليها وتكون القيمة (value) المقابلة لذلك المفتاح هي إمَّا محارف سلسلة المحارف المعطاة أو الناتج الذي تعيده الدالةvalueTransform
الممررة. - الدالة
asIterable()
: تنشئ نسخةً من الواجهةIterable
التي تغلّف سلسلة المحارف التي استُدعيت معها لاستعمالها في الحلقات التكرارية، إذ تعيد محارفها عندما تُستخدَم في حلقات التكرار (مثلfor
).