التابع text.zip() في لغة Kotlin
يختلف سلوك الدالة zip()
بحسب نوع وعدد الوسائط المُمرّرة (انظر فقرة البنية العامة).
البنية العامة
infix fun CharSequence.zip(
other: CharSequence
): List<Pair<Char, Char>>
تعيد الدالة zip()
لائحة تحتوي أزواجًا (pairs) مُركّبة من حروف سلسلة الحروف التي استٌدعيت عبرها ومن حروف السلسلة الأخرى المًمرّرة other
التي لها نفس الفهرس، اللائحة المُعادة لها طول أقصر سلسلة حروف.
inline fun <V> CharSequence.zip(
other: CharSequence,
transform: (a: Char, b: Char) -> V
): List<V>
تعيد الدالة zip()
لائحة تحتوي نتائج تطبيق الدالة المُمرّرة transform
على حروف سلسلة الحروف التي استٌدعيت عبرها وعلى حروف السلسلة الأخرى المًمرّرة other
التي لها نفس الفهرس، اللائحة المُعادة لها طول أقصر سلسلة حروف.
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المعادة
أمثلة
استخدام الدالة zip()
مع السلاسل النصية
تستدعي الشيفرة الآتية الدالة 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()
مع السلاسل النصية مع تمرير دالة
تستدعي الشيفرة الآتية الدالة 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()
: تتعيد الدالةzipWithNext()
لائحة تحتوي أزواجًا (pairs) مُركّبة من حروف سلسلة الحروف التي استٌدعيت عبرها ومن حروف السلسلة الأخرى المًمرّرةother
التي عند الفهرس الموالي، اللائحة المُعادة ستكون فارغة إن كانت سلسلة حروف الأصلية تحتوي أقل من حرفين.
toUpperCase()
: تحوّل الدالةtoUpperCase()
الحرف أو السلسلة النصية التي استٌدعيت عبرها إلى حالة الأحرف الكبيرة (uppercase).toBigDecimal()
: تحلّل الدالةtoBigDecimal()
السلسلة النصية التي استٌدعيت عبرها وتحوّلها إلى عدد من النوعBigDecimal
.
isDefined()
: تعيد القيمةtrue
في حال كان الحرف (Unicode code point) الذي استٌدعيت عبره مُعرّفًا في اليونيكود (Unicode).