الفرق بين المراجعتين ل"Kotlin/kotlin.text/partition"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.partition()‎</code> في لغة Kotlin}}</noinclude> تُقسّم الدالةُ<code>partition()‎</code> Kotli...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>text.partition()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>text.partition()‎</code> في لغة Kotlin}}</noinclude>
تُقسّم الدالةُ<code>partition()‎</code> [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/List|لائحتين]]، [[Kotlin/List|اللائحة]] الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى.  
+
تُقسّم الدالةُ<code>partition()‎</code> [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/String|سلسلتين نصيتين]] أو [[Kotlin/CharSequence/index|سلسلتي حروف]]،  الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى.  
  
 
==البنية العامة==
 
==البنية العامة==
يمكن استدعاء الدالة <code>partition()‎</code> عبر  [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
+
<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.partition(
+
inline fun CharSequence.partition(
    predicate: (T) -> Boolean
 
): Pair<List<T>, List<T>>
 
inline fun ByteArray.partition(
 
    predicate: (Byte) -> Boolean
 
): Pair<List<Byte>, List<Byte>>
 
inline fun ShortArray.partition(
 
    predicate: (Short) -> Boolean
 
): Pair<List<Short>, List<Short>>
 
inline fun IntArray.partition(
 
    predicate: (Int) -> Boolean
 
): Pair<List<Int>, List<Int>>
 
inline fun LongArray.partition(
 
    predicate: (Long) -> Boolean
 
): Pair<List<Long>, List<Long>>
 
inline fun FloatArray.partition(
 
    predicate: (Float) -> Boolean
 
): Pair<List<Float>, List<Float>>
 
inline fun DoubleArray.partition(
 
    predicate: (Double) -> Boolean
 
): Pair<List<Double>, List<Double>>
 
inline fun BooleanArray.partition(
 
    predicate: (Boolean) -> Boolean
 
): Pair<List<Boolean>, List<Boolean>>
 
inline fun CharArray.partition(
 
 
     predicate: (Char) -> Boolean
 
     predicate: (Char) -> Boolean
): Pair<List<Char>, List<Char>>  
+
): Pair<CharSequence, CharSequence>
 +
</syntaxhighlight>
  
</syntaxhighlight>
+
تُقسّم الدالةُ<code>partition()‎</code>  [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/CharSequence/index|سلسلتي حروف]]،  الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى. <syntaxhighlight lang="kotlin">
 +
inline fun String.partition(
 +
    predicate: (Char) -> Boolean
 +
): Pair<String, String>
 +
</syntaxhighlight>تُقسّم الدالةُ<code>partition()‎</code> [[Kotlin/String|السلسلة النصية]]  التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/String|سلسلتين نصيتين]]،  الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code>، بينما تضم الثانية العناصر الأخرى.
  
يمكن استدعاء الدالة <code>partition()‎</code> عبر  [[Kotlin/collections|المجموعات]]: <syntaxhighlight lang="kotlin">
+
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
inline fun <T> Iterable<T>.partition(
 
    predicate: (T) -> Boolean
 
): Pair<List<T>, List<T>>
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
  
 
==القيم المٌعادة==
 
==القيم المٌعادة==
زوج مكوّن من [[Kotlin/List|لائحتين]]، [[Kotlin/List|اللائحة]] الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى.
+
زوج مكوّن من [[Kotlin/String|سلسلتين نصيتين]] أو [[Kotlin/CharSequence/index|سلسلتي حروف]]  
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()partition</code> مع اللوائح===
 
===استخدام الدالة <code>()partition</code> مع اللوائح===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحة]]<nowiki/><nowiki/> باسم <code>iterable</code>مكونة من خمسة أعداد باستخدام الدالة <code>()listOf</code>، ثم تستدعي الدالة <code>()partition</code> عبر <code>iterable</code>  للحصول على [[Kotlin/Pair|زوج]] من النوع <code>Pair<Iterable<Int>, Iterable<Int>></code>مكون من [[Kotlin/List|لائحتين]]، الأولى تضم الأعداد الزوجية، والأخرى تضم الأعداد الفردية<nowiki/>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تُعرّف الشيفرة الآتية [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، <nowiki/><nowiki/><nowiki/>ثم تستدعي الدالة <code>()partition</code> عبرها للحصول على [[Kotlin/Pair|زوج]] من النوع <code>Pair<String, String></code>‎، مكون من [[Kotlin/String|سلسلتين نصيتين]]، الأولى تضم الحروف الكبيرة، والأخرى تضم الحروف الصغيرة<nowiki/>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
    val iterable = listOf(1, 2, 3, 4, 5)
+
val str = "Hsoub Wiki"
 +
val pair: Pair<String, String> = str.partition { it.isUpperCase() }
  
    val pair: Pair<Iterable<Int>, Iterable<Int>> = iterable.partition { it % 2 == 0 }
+
println(pair) // (HW, soub iki)
 
 
    println(pair) // ([2, 4], [1, 3, 5])
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
*<code>[[Kotlin/collections/max|max()]]</code>: تعيد أكبر عنصر في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة.
+
* <code>[[Kotlin/kotlin.text/padEnd|padEnd()]]</code>: تعيد الدالة <code>padEnd()</code>‎ [[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]] تساوي [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استٌدعيت عبرها ولكن مع تطويلها ليساوي طولها العدد المُمرّر <code>length</code>، التطويل يكون بإضافة الوسيط <code>padChar</code> إلى آخر [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]]، وقيمتها الابتدائية هي المسافة البيضاء (space).
 +
 
 +
*<code>[[Kotlin/text/isDefined|isDefined()]]‎</code>: تعيد القيمة <code>true</code> في حال كان الحرف (Unicode code point) الذي استٌدعيت عبره مُعرّفًا في اليونيكود (Unicode).
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/partition.html الدالة  text.partition()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/partition.html الدالة  text.partition()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 22:02، 10 يوليو 2018

تُقسّم الدالةُ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)
}

انظر أيضًا

  • isDefined(): تعيد القيمة true في حال كان الحرف (Unicode code point) الذي استٌدعيت عبره مُعرّفًا في اليونيكود (Unicode).

مصادر