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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - 'Kotlin Functions' ب'Kotlin Function')
(مراجعة وتدقيق.)
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.partition()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>partition()‎</code> في Kotlin}}</noinclude>
تُقسّم الدالةُ<code>partition()‎</code> [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/String|سلسلتين نصيتين]] أو [[Kotlin/CharSequence/index|سلسلتي حروف]]،  الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى.  
+
تقسم الدالة <code>partition()‎</code> سلسلة المحارف التي استُدعيت معها إلى قسمين؛ الأول يضم المحارف التي تحقِّق شرطًا محدَّدًا، والثاني يضم المحارف الأخرى المتبقيَّة.  
  
 
==البنية العامة==
 
==البنية العامة==
سطر 9: سطر 9:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
تُقسّم الدالةُ<code>partition()‎</code>  [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/CharSequence/index|سلسلتي حروف]]،  الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى. <syntaxhighlight lang="kotlin">
+
<syntaxhighlight lang="kotlin">
 
inline fun String.partition(
 
inline fun String.partition(
 
     predicate: (Char) -> Boolean
 
     predicate: (Char) -> Boolean
 
): Pair<String, String>
 
): Pair<String, String>
</syntaxhighlight>تُقسّم الدالةُ<code>partition()‎</code> [[Kotlin/String|السلسلة النصية]]  التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/String|سلسلتين نصيتين]]،  الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code>، بينما تضم الثانية العناصر الأخرى.
+
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
  
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
+
== المعاملات ==
 +
 
 +
=== <code>predicate</code> ===
 +
دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها كل محرف من محارف السلسلة على حدة ثم تعيد قيمة منطقية مقابلة له.
  
 
==القيم المعادة==
 
==القيم المعادة==
زوج مكوّن من [[Kotlin/String|سلسلتين نصيتين]] أو [[Kotlin/CharSequence/index|سلسلتي حروف]]  
+
يعاد [[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">
تُعرّف الشيفرة الآتية [[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 str = "Hsoub Wiki"  
+
    val str = "Hsoub Wiki"
val pair: Pair<String, String> = str.partition { it.isUpperCase() }
+
    val pair: Pair<String, String> = str.partition { it.isUpperCase() }
  
println(pair) // (HW, soub iki)
+
    println(pair) // (HW, soub iki)
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
* <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/kotlin.text/filter|filter()]]</code>: ترشِّح محارف <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو السلسلة النصية المعطاة بناءً على قيمة المحرف التي تحقِّق شرطًا معيَّنًا.
 
 
*<code>[[Kotlin/text/isDefined|isDefined()]]‎</code>: تعيد القيمة <code>true</code> في حال كان الحرف (Unicode code point) الذي استٌدعيت عبره مُعرّفًا في اليونيكود (Unicode).
 
 
==مصادر==
 
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/partition.html الدالة  text.partition()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/partition.html الدالة  partition()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Function]]
 
[[تصنيف: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()‎: ترشِّح محارف سلسلة المحارف أو السلسلة النصية المعطاة بناءً على قيمة المحرف التي تحقِّق شرطًا معيَّنًا.

مصادر