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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.partition()‎</code> في لغة Kotlin}}</noinclude> تُقسّم الدالةُ<code>partition()‎</code> Kotli...')
 
(مراجعة وتدقيق.)
 
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.partition()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>partition()‎</code> في Kotlin}}</noinclude>
تُقسّم الدالةُ<code>partition()‎</code> [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/List|لائحتين]]، [[Kotlin/List|اللائحة]] الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى.  
+
تقسم الدالة <code>partition()‎</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>
+
<syntaxhighlight lang="kotlin">
 +
inline fun String.partition(
 +
    predicate: (Char) -> Boolean
 +
): Pair<String, String>
 +
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
 +
 
 +
== المعاملات ==
  
يمكن استدعاء الدالة <code>partition()‎</code> عبر  [[Kotlin/collections|المجموعات]]: <syntaxhighlight lang="kotlin">
+
=== <code>predicate</code> ===
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/Pair|زوجٌ]] من [[Kotlin/CharSequence|سلاسل من المحارف]] أو [[Kotlin/String|سلاسل نصية]]، إذ تضم الأولى محارف السلسلة المعطاة التي تحقِّق الشرط <code>predicate</code> المعطى (أي تعيد <code>true</code> معها)، بينما تضم الثانية المحارف الأخرى.  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()partition</code> مع اللوائح===
+
<nowiki/><nowiki/><nowiki/>مثالٌ على استعمال الدالة <code>()partition</code><nowiki/>:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <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">
 
 
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) // ([2, 4], [1, 3, 5])
+
     println(pair) // (HW, soub iki)
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
*<code>[[Kotlin/collections/max|max()]]</code>: تعيد أكبر عنصر في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة.
+
* الدالة <code>[[Kotlin/kotlin.text/filter|filter()]]</code>: ترشِّح محارف <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو السلسلة النصية المعطاة بناءً على قيمة المحرف التي تحقِّق شرطًا معيَّنًا.
 
==مصادر==
 
==مصادر==
*[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 الدالة  partition()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Text]]

المراجعة الحالية بتاريخ 16:54، 4 سبتمبر 2018

تقسم الدالة partition()‎ سلسلة المحارف التي استُدعيت معها إلى قسمين؛ الأول يضم المحارف التي تحقِّق شرطًا محدَّدًا، والثاني يضم المحارف الأخرى المتبقيَّة.

البنية العامة

inline fun CharSequence.partition(
    predicate: (Char) -> Boolean
): Pair<CharSequence, CharSequence>
inline fun String.partition(
    predicate: (Char) -> Boolean
): Pair<String, String>

وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)).

المعاملات

predicate

دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها كل محرف من محارف السلسلة على حدة ثم تعيد قيمة منطقية مقابلة له.

القيم المعادة

يعاد زوجٌ من سلاسل من المحارف أو سلاسل نصية، إذ تضم الأولى محارف السلسلة المعطاة التي تحقِّق الشرط predicate المعطى (أي تعيد true معها)، بينما تضم الثانية المحارف الأخرى.

أمثلة

مثالٌ على استعمال الدالة ()partition:

fun main(args: Array<String>) {
    val str = "Hsoub Wiki"
    val pair: Pair<String, String> = str.partition { it.isUpperCase() }

    println(pair) // (HW, soub iki)
}

انظر أيضًا

  • الدالة filter()‎: ترشِّح محارف سلسلة المحارف أو السلسلة النصية المعطاة بناءً على قيمة المحرف التي تحقِّق شرطًا معيَّنًا.

مصادر