الدالة text.partition()
في لغة Kotlin
تُقسّم الدالةُpartition()
السلسلة النصية أو سلسلة الحروف التي استُدعيت عبرها إلى زوج مكوّن من سلسلتين نصيتين أو سلسلتي حروف، الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر predicate
(أي تعيد true
)، بينما تضم الثانية العناصر الأخرى.
البنية العامة
inline fun CharSequence.partition(
predicate: (Char) -> Boolean
): Pair<CharSequence, CharSequence>
تُقسّم الدالةُpartition()
سلسلة الحروف التي استُدعيت عبرها إلى زوج مكوّن من سلسلتي حروف، الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر predicate
(أي تعيد true
)، بينما تضم الثانية العناصر الأخرى.
inline fun String.partition(
predicate: (Char) -> Boolean
): Pair<String, String>
تُقسّم الدالةُpartition()
السلسلة النصية التي استُدعيت عبرها إلى زوج مكوّن من سلسلتين نصيتين، الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر predicate
، بينما تضم الثانية العناصر الأخرى.
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المٌعادة
زوج مكوّن من سلسلتين نصيتين أو سلسلتي حروف
أمثلة
استخدام الدالة ()partition
مع اللوائح
تُعرّف الشيفرة الآتية سلسلة نصية باسم str
، ثم تستدعي الدالة ()partition
عبرها للحصول على زوج من النوع Pair<String, String>
، مكون من سلسلتين نصيتين، الأولى تضم الحروف الكبيرة، والأخرى تضم الحروف الصغيرة، ثم تطبع الناتج:
fun main(args: Array<String>) {
val str = "Hsoub Wiki"
val pair: Pair<String, String> = str.partition { it.isUpperCase() }
println(pair) // (HW, soub iki)
}
انظر أيضًا
padEnd()
: تعيد الدالةpadEnd()
سلسلة نصية أو سلسلة حروف تساوي السلسلة النصية أو سلسلة الحروف التي استٌدعيت عبرها ولكن مع تطويلها ليساوي طولها العدد المُمرّرlength
، التطويل يكون بإضافة الوسيطpadChar
إلى آخر السلسلة النصية أو سلسلة الحروف، وقيمتها الابتدائية هي المسافة البيضاء (space).
isDefined()
: تعيد القيمةtrue
في حال كان الحرف (Unicode code point) الذي استٌدعيت عبره مُعرّفًا في اليونيكود (Unicode).