الفرق بين المراجعتين لصفحة: «Kotlin/collections/associateByTo»
لا ملخص تعديل |
لا ملخص تعديل |
||
سطر 103: | سطر 103: | ||
قاموس. (انظر شرح الدالة أعلاه لمزيد من التفاصيل) | قاموس. (انظر شرح الدالة أعلاه لمزيد من التفاصيل) | ||
==أمثلة== | ==أمثلة== | ||
===استخدام الدالة <code>() | ===استخدام الدالة <code>()associateByTo</code> مع اللوائح بتمرير دالة واحدة=== | ||
تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من أربعة أعداد باستخدام الدالة <code>()listOf</code>، ثم تنشئ قاموسًا متغيرًا باسم <code>map</code> بتمرير الدالة <code>()func</code> (التي تضرب الأعداد في 4) إلى<code>() | تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من أربعة أعداد باستخدام الدالة <code>()listOf</code>، ثم تنشئ قاموسًا متغيرًا باسم <code>map</code> بتمرير الدالة <code>()func</code> (التي تضرب الأعداد في 4) إلى<code>()associateByTo</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) | ||
سطر 115: | سطر 115: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===استخدام الدالة <code>() | ===استخدام الدالة <code>()associateByTo</code> مع اللوائح بتمرير دالتين=== | ||
تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من ثلاثة أحرف باستخدام الدالة <code>()listOf</code>، ثم تنشئ قاموسًا متغيرًا باسم <code>map</code> بتمرير الدالة <code>()</code><code>func</code> (التي تضرب الأعداد في 4) والدالة<code>()func2</code> (التي تضيف 4 إلى العدد الممرر إليها) إلى<code>() | تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من ثلاثة أحرف باستخدام الدالة <code>()listOf</code>، ثم تنشئ قاموسًا متغيرًا باسم <code>map</code> بتمرير الدالة <code>()</code><code>func</code> (التي تضرب الأعداد في 4) والدالة<code>()func2</code> (التي تضيف 4 إلى العدد الممرر إليها) إلى<code>()associateByTo</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) |
مراجعة 14:13، 11 مايو 2018
تعيد الدالة associateByTo()
قاموسًا متغيرا (mutable map) يحتوي ناتج تمرير عناصر المصفوفة أو المجموعة (Collection
) إلى الدالة valueTransform
مُفهرسة بناتج تمرير عناصر المصفوفة أو المجموعة إلى الدالة keySelector
.
ان كان لعنصرين نفس المفتاح (key) بعد تطبيق الدالةkeySelector
فإن الأخير هو الذي سيُضاف إلى القاموس.
البنية العامة
في حال استدعاء الدالة associateByTo()
عبر مصفوفة فستعيد القاموس المتغير destination
مفاتيحه توفرها الدالة keySelector()
مُطبقةً على عناصر المصفوفة وقيمه هي عناصر المصفوفة:
inline fun <T, K, M : MutableMap<in K, in T>> Array<out T>.associateByTo(
destination: M,
keySelector: (T) -> K
): M
inline fun <K, M : MutableMap<in K, in Byte>> ByteArray.associateByTo(
destination: M,
keySelector: (Byte) -> K
): M
inline fun <K, M : MutableMap<in K, in Short>> ShortArray.associateByTo(
destination: M,
keySelector: (Short) -> K
): M
inline fun <K, M : MutableMap<in K, in Int>> IntArray.associateByTo(
destination: M,
keySelector: (Int) -> K
): M
inline fun <K, M : MutableMap<in K, in Long>> LongArray.associateByTo(
destination: M,
keySelector: (Long) -> K
): M
inline fun <K, M : MutableMap<in K, in Float>> FloatArray.associateByTo(
destination: M,
keySelector: (Float) -> K
): M
inline fun <K, M : MutableMap<in K, in Double>> DoubleArray.associateByTo(
destination: M,
keySelector: (Double) -> K
): M
inline fun <K, M : MutableMap<in K, in Boolean>> BooleanArray.associateByTo(
destination: M,
keySelector: (Boolean) -> K
): M
inline fun <K, M : MutableMap<in K, in Char>> CharArray.associateByTo(
destination: M,
keySelector: (Char) -> K
): M
في حال استدعاء الدالة associateByTo()
عبر مصفوفة فستعيدالقاموس المتغير destination
مفاتيحه توفرها الدالة keySelector()
مُطبقةً على عناصر المصفوفة وقيمه توفرها الدالة valueTransform()
مُطبقةً على عناصر المصفوفة:
inline fun <T, K, V, M : MutableMap<in K, in V>> Array<out T>.associateByTo(
destination: M,
keySelector: (T) -> K,
valueTransform: (T) -> V
): M
inline fun <K, V, M : MutableMap<in K, in V>> ByteArray.associateByTo(
destination: M,
keySelector: (Byte) -> K,
valueTransform: (Byte) -> V
): M
inline fun <K, V, M : MutableMap<in K, in V>> ShortArray.associateByTo(
destination: M,
keySelector: (Short) -> K,
valueTransform: (Short) -> V
): M
inline fun <K, V, M : MutableMap<in K, in V>> IntArray.associateByTo(
destination: M,
keySelector: (Int) -> K,
valueTransform: (Int) -> V
): M
inline fun <K, V, M : MutableMap<in K, in V>> LongArray.associateByTo(
destination: M,
keySelector: (Long) -> K,
valueTransform: (Long) -> V
): M
inline fun <K, V, M : MutableMap<in K, in V>> FloatArray.associateByTo(
destination: M,
keySelector: (Float) -> K,
valueTransform: (Float) -> V
): M
inline fun <K, V, M : MutableMap<in K, in V>> DoubleArray.associateByTo(
destination: M,
keySelector: (Double) -> K,
valueTransform: (Double) -> V
): M
inline fun <K, V, M : MutableMap<in K, in V>> BooleanArray.associateByTo(
destination: M,
keySelector: (Boolean) -> K,
valueTransform: (Boolean) -> V
): M
inline fun <K, V, M : MutableMap<in K, in V>> CharArray.associateByTo(
destination: M,
keySelector: (Char) -> K,
valueTransform: (Char) -> V
): M
في حال استدعاء الدالة associateByTo()
عبر مجموعة (Collection
) فستعيد القاموس المتغير destination
مفاتيحه توفرها الدالة keySelector()
مُطبقةً على عناصر المجموعة وقيمها هي عناصر المجموعة:
inline fun <T, K, M : MutableMap<in K, in T>> Iterable<T>.associateByTo(
destination: M,
keySelector: (T) -> K
):
في حال استدعاء الدالة associateByTo()
عبر مجموعة (Collection
) فستعيد القاموس المتغير destination
مفاتيحه توفرها الدالة keySelector()
مُطبقةً على عناصر المجموعة وقيمه توفرها الدالة valueTransform()
مُطبقةً على عناصر المجموعة:
inline fun <T, K, V, M : MutableMap<in K, in V>> Iterable<T>.associateByTo(
destination: M,
keySelector: (T) -> K,
valueTransform: (T) -> V
): M
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المعادة
قاموس. (انظر شرح الدالة أعلاه لمزيد من التفاصيل)
أمثلة
استخدام الدالة ()associateByTo
مع اللوائح بتمرير دالة واحدة
تعرف الشيفرة الآتية لائحة باسم list
مكونة من أربعة أعداد باستخدام الدالة ()listOf
، ثم تنشئ قاموسًا متغيرًا باسم map
بتمرير الدالة ()func
(التي تضرب الأعداد في 4) إلى()associateByTo
ثم تطبع الناتج:
fun main(args: Array<String>) {
val list = listOf(1,2,3,4)
val map = mutableMapOf<Int, Int>()
val func: (Int) -> Int = {it*4}
list.associateByTo(map,func)
println(map) // {4=1, 8=2, 12=3, 16=4}
}
استخدام الدالة ()associateByTo
مع اللوائح بتمرير دالتين
تعرف الشيفرة الآتية لائحة باسم list
مكونة من ثلاثة أحرف باستخدام الدالة ()listOf
، ثم تنشئ قاموسًا متغيرًا باسم map
بتمرير الدالة ()
func
(التي تضرب الأعداد في 4) والدالة()func2
(التي تضيف 4 إلى العدد الممرر إليها) إلى()associateByTo
ثم تطبع الناتج:
fun main(args: Array<String>) {
val list = listOf(1,2,3,4)
val map = mutableMapOf<Int, Int>()
val func: (Int) -> Int = {it*4}
val func2: (Int) -> Int = {it + 4}
list.associateByTo(map,func,func2)
println(map) // {4=5, 8=6, 12=7, 16=8}
}
انظر أيضًا
associateBy()
: تعيد قاموسًا (map).associate()
: تعيد قاموسًا (map).asList()
: تعيد لائحة والتي تُغلّف المصفوفة الاصلية.
asIterable()
: تُنشئ نسخة تكرارية (Iterable instance) والتي تُغلّف المصفوفة الاصلية وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثلfor
).