الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/zip»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) مراجعة وتدقيق. |
||
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE: الدالة <code>zip()</code> في Kotlin}}</noinclude> | ||
تنشئ الدالة <code>zip()</code> أزواجًا من محارف سلسلتين لها نفس الفهرس، أو تنشئ قيمًا عبر تمرير عناصر لها نفس الفهرس تجلب من كائنين مختلفين إلى دالة معينة. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
سطر 6: | سطر 6: | ||
other: CharSequence | other: CharSequence | ||
): List<Pair<Char, Char>> | ): List<Pair<Char, Char>> | ||
</syntaxhighlight> | </syntaxhighlight>إن استدعيت الدالة <code>zip()</code> مع <nowiki/>[[Kotlin/CharSequence|سلسلة من المحارف]] ومع تمرير <nowiki/>[[Kotlin/CharSequence|سلسلة]] أخرى إليها كمعامل، فستشكل أزواجًا من محارف هاتين السلسلتين لها نفس الفهرس وتضعها في قائمة؛ طول القائمة المعادة يساوي طول أٌقصرهما.<syntaxhighlight lang="kotlin"> | ||
inline fun <V> CharSequence.zip( | inline fun <V> CharSequence.zip( | ||
other: CharSequence, | other: CharSequence, | ||
transform: (a: Char, b: Char) -> V | transform: (a: Char, b: Char) -> V | ||
): List<V> | ): List<V> | ||
</syntaxhighlight> | </syntaxhighlight>وإن استدعيت الدالة <code>zip()</code> مع <nowiki/>[[Kotlin/CharSequence|سلسلة من المحارف]] ومع تمرير <nowiki/>[[Kotlin/CharSequence|سلسلة]] ودالة إليها، فستعيد قائمة تحوي قيمًا ناتجة عن تمرير محارف هاتين السلسلتين التي لها نفس الفهرس إلى تلك الدالة المعطاة؛ طول القائمة المعادة يساوي طول أٌقصرهما. | ||
وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]). | |||
== المعاملات == | |||
=== <code>other</code> === | |||
سلسلة المحارف الأخرى التي ستطبق عليها العملية. | |||
=== <code>transform</code> === | |||
الدالة التي سيمرر إليها المحرفان اللذان يملكان الفهرس نفسه ثم تعيد القيمة المقابلة لهما. | |||
==القيم المعادة== | ==القيم المعادة== | ||
[[Kotlin/List| | تعاد [[Kotlin/collections/List|قائمة]] تحوي أزواجًا منشأة من عناصر الكائنين المعطيين التي لها نفس الفهرس، أو تعاد قائمة من قيمٍ منشأة عبر تمرير عناصر هذين الكائنين التي لها نفس الفهرس إلى دالة معينة | ||
==أمثلة== | ==أمثلة== | ||
مثالٌ على استعمال الدالة <code>zip()</code>:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
println("hsoub".zip("12345")) // [(h, 1), (s, 2), (o, 3), (u, 4), (b, 5)] | println("hsoub".zip("12345")) // [(h, 1), (s, 2), (o, 3), (u, 4), (b, 5)] | ||
println("hsoub".zip("12")) // [(h, 1), (s, 2)] | println("hsoub".zip("12")) // [(h, 1), (s, 2)] | ||
println("hsoub" zip "HSOUB") // [(h, H), (s, S), (o, O), (u, U), (b, B)] | println("hsoub" zip "HSOUB") // [(h, H), (s, S), (o, O), (u, U), (b, B)] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight>مثالٌ آخر على استعمال الدالة <code>zip()</code> مع تمرير دالة:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
println("hsoub".zip("12345") {x, y -> listOf(x,y) }) // [[h, 1], [s, 2], [o, 3], [u, 4], [b, 5]] | println("hsoub".zip("12345") { x, y -> listOf(x, y) }) // [[h, 1], [s, 2], [o, 3], [u, 4], [b, 5]] | ||
println("hsoub".zip("wiki") {x, y -> if (x > y) x else y }) // [w, s, o, u] | println("hsoub".zip("wiki") { x, y -> if (x > y) x else y }) // [w, s, o, u] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* <code>[[Kotlin/kotlin.text/ | *الدالة <code>[[Kotlin/kotlin.text/zipWithNext|zipWithNext()]]</code> : تنشئ أزواجًا من محارف [[Kotlin/CharSequence|السلسلة]] التي استدعيت معها والمحارف التي لها الفهرس التالي من [[Kotlin/CharSequence|السلسلة]] الممررة إليها، أو تنشئ قيمًا ناتجة عن تمرير تلك الأزواج إلى دالة معينة. | ||
* الدالة <code>[[Kotlin/kotlin.text/map|map()]]</code>: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف <nowiki/>[[Kotlin/CharSequence|السلسلة]] التي استُدعيت معها. | |||
*<code>[[Kotlin/kotlin.text/ | |||
==مصادر== | ==مصادر== | ||
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/zip.html صفحة الدالة zip() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | |||
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/zip.html صفحة الدالة | |||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Text]] |
المراجعة الحالية بتاريخ 06:58، 7 سبتمبر 2018
تنشئ الدالة zip()
أزواجًا من محارف سلسلتين لها نفس الفهرس، أو تنشئ قيمًا عبر تمرير عناصر لها نفس الفهرس تجلب من كائنين مختلفين إلى دالة معينة.
البنية العامة
infix fun CharSequence.zip(
other: CharSequence
): List<Pair<Char, Char>>
إن استدعيت الدالة zip()
مع سلسلة من المحارف ومع تمرير سلسلة أخرى إليها كمعامل، فستشكل أزواجًا من محارف هاتين السلسلتين لها نفس الفهرس وتضعها في قائمة؛ طول القائمة المعادة يساوي طول أٌقصرهما.
inline fun <V> CharSequence.zip(
other: CharSequence,
transform: (a: Char, b: Char) -> V
): List<V>
وإن استدعيت الدالة zip()
مع سلسلة من المحارف ومع تمرير سلسلة ودالة إليها، فستعيد قائمة تحوي قيمًا ناتجة عن تمرير محارف هاتين السلسلتين التي لها نفس الفهرس إلى تلك الدالة المعطاة؛ طول القائمة المعادة يساوي طول أٌقصرهما.
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)).
المعاملات
other
سلسلة المحارف الأخرى التي ستطبق عليها العملية.
transform
الدالة التي سيمرر إليها المحرفان اللذان يملكان الفهرس نفسه ثم تعيد القيمة المقابلة لهما.
القيم المعادة
تعاد قائمة تحوي أزواجًا منشأة من عناصر الكائنين المعطيين التي لها نفس الفهرس، أو تعاد قائمة من قيمٍ منشأة عبر تمرير عناصر هذين الكائنين التي لها نفس الفهرس إلى دالة معينة
أمثلة
مثالٌ على استعمال الدالة zip()
:
fun main(args: Array<String>) {
println("hsoub".zip("12345")) // [(h, 1), (s, 2), (o, 3), (u, 4), (b, 5)]
println("hsoub".zip("12")) // [(h, 1), (s, 2)]
println("hsoub" zip "HSOUB") // [(h, H), (s, S), (o, O), (u, U), (b, B)]
}
مثالٌ آخر على استعمال الدالة zip()
مع تمرير دالة:
fun main(args: Array<String>) {
println("hsoub".zip("12345") { x, y -> listOf(x, y) }) // [[h, 1], [s, 2], [o, 3], [u, 4], [b, 5]]
println("hsoub".zip("wiki") { x, y -> if (x > y) x else y }) // [w, s, o, u]
}
انظر أيضًا
- الدالة
zipWithNext()
: تنشئ أزواجًا من محارف السلسلة التي استدعيت معها والمحارف التي لها الفهرس التالي من السلسلة الممررة إليها، أو تنشئ قيمًا ناتجة عن تمرير تلك الأزواج إلى دالة معينة. - الدالة
map()
: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف السلسلة التي استُدعيت معها.