الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/filterTo»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.filterTo()‎</code> في لغة Kotlin}}</noinclude> تضيف الدالة <code>filterTo()</code>‎ كل الحرو...'
 
مراجعة وتدقيق.
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.filterTo()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>filterTo()‎</code> في Kotlin}}</noinclude>
تضيف الدالة <code>filterTo()</code>‎ كل الحروف من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate</code> إلى الوسيط المُمرّر <code>destination</code>. يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()</code> ثم تعيد بدورها قيمة منطقيَّة.
تشبه الدالة <code>filterTo()</code>‎ الدالة [[Kotlin/kotlin.text/filter|<code>filter()</code>‎]] تمامًا باستثناء أنها تضيف الناتج إلى كائن موجود مسبقًا بدلًا من أن تعيده.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
inline fun <C> CharSequence.filterIndexedTo(
inline fun <C> CharSequence.filterTo(
     destination: C,  
     destination: C,  
     predicate: (index: Int, Char) -> Boolean
     predicate: (Char) -> Boolean
): C  
): C
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أن هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]]).
 
== المعاملات ==
 
=== <code>destination</code> ===
كائن موجود مسبقًا يمثل الوجهة المراد إضافة الناتج فيها.
 
=== <code>predicate</code> ===
دالةٌ تمثل الشرط المراد تطبيقه على كل محرف من محارف [[Kotlin/CharSequence/index|سلسلة المحارف]] المعطاة. يمرر إلى هذه الدالة محرفٌ وتعيد قيمة منطقية.


==القيم المعادة==
==القيم المعادة==
الوسيط المُمرّر <code>destination</code>.
تضاف المحارف التي أعيدت القيمة <code>true</code> معها عند تطبيق الدالة <code>predicate</code> عليها إلى المعامل <code>destination</code> المعطى ثم تعاد.
 
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()filterTo</code> مع سلسلة نصية===
مثالٌ على استعمال الدالة <code>()filterTo</code>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، وتعرّف كائنا من الصنف [[Kotlin/kotlin.text/StringBuilder/index|<code>StringBuilder</code>]] باسم <code>sb</code>، ثمَّ تستدعي الدالة  <code>()filterTo</code> عبرها مع تمرير <code>sb</code> ودالة منطقية كوسيطين، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
     val str = "Hsoub Academy"
     val str = "abcdefabc"
     val list = StringBuilder()
     val sb = StringBuilder()
      
 
println(str.filterIndexedTo (list){index, char -> (char.toByte() < index + 97) }) // Hb Acade
     str.filterTo(sb) { it < 'd' }
 
    println(sb) // ab
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
* <code>[[Kotlin/kotlin.text/filterIndexed|filterIndexed()]]</code>: تعيد الدالة <code>filterIndexed()</code>‎ كل الحروف من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها والتي تحقق الشرط المنطقي. يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()‎</code> ثم تعيد بدورها قيمة منطقيَّة
*الدالة <code>[[Kotlin/kotlin.text/filter|filter()]]</code>: ترشِّح محارف <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو [[Kotlin/String|السلسلة النصية]] المعطاة بناءً على قيمة المحرف التي تحقِّق شرطًا معيَّنًا.
 
*الدالة <code>[[Kotlin/kotlin.text/filterIndexed|filterIndexed()]]‎</code>: ترشِّح محارف <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو [[Kotlin/String|السلسلة النصية]] المعطاة بناءً على فهرس المحرف وقيمته
* <code>[[Kotlin/kotlin.text/elementAt|elementAt()]]‎</code>: تعيد الحرف الموجود في الفهرس المُحدّد في سلسلة الحروف التي استُدعيت عبرها، في حال كان الفهرس خارج الحدود فستطلق الاستثناء <code>IndexOutOfBoundsException</code>. 
*الدالة <code>[[Kotlin/kotlin.text/filterIndexedTo|filterIndexedTo()]]‎</code>: تشبه الدالة [[Kotlin/kotlin.text/filterIndexed|<code>filterIndexed()</code>‎]] تمامًا باستثناء أنها تضيف الناتج إلى كائن موجود مسبقًا بدلًا من أن تعيده.
 
*الدالة <code>[[Kotlin/kotlin.text/filterNot|filterNot()‎]]</code>: ترشِّح محارف <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو [[Kotlin/String|السلسلة النصية]] المعطاة بناءً على قيمة المحرف التي '''لم''' تحقِّق شرطًا معيَّنًا.
* <code>[[Kotlin/kotlin.text/compareTo|compareTo()]]‎</code>: تقارن بين سلسلتين نصيتين.
*الدالة [[Kotlin/kotlin.text/filterNotTo|<code>filterNotTo()</code>]]: تشبه الدالة [[Kotlin/kotlin.text/filterNot|<code>filterNot()</code>‎]] تمامًا باستثناء أنها تضيف الناتج إلى كائن موجود مسبقًا بدلًا من أن تعيده.


* الدالة <code>[[Kotlin/kotlin.text/dropWhile|dropWhile()‎]]</code>: تُزيِل المحارف الأولى المحققة لشرط معين من محارف السلسلة النصية أو <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها.
==مصادر==
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/filter-indexed-to.html الدالة text.filterTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/filter-to.html صفحة الدالة filterTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Text]]

المراجعة الحالية بتاريخ 06:47، 3 سبتمبر 2018

تشبه الدالة filterTo()‎ الدالة filter() تمامًا باستثناء أنها تضيف الناتج إلى كائن موجود مسبقًا بدلًا من أن تعيده.

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

inline fun <C> CharSequence.filterTo(
    destination: C, 
    predicate: (Char) -> Boolean
): C

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

المعاملات

destination

كائن موجود مسبقًا يمثل الوجهة المراد إضافة الناتج فيها.

predicate

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

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

تضاف المحارف التي أعيدت القيمة true معها عند تطبيق الدالة predicate عليها إلى المعامل destination المعطى ثم تعاد.

أمثلة

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

fun main(args: Array<String>) {
    val str = "abcdefabc"
    val sb = StringBuilder()

    str.filterTo(sb) { it < 'd' }

    println(sb) // ab
}

انظر أيضًا

  • الدالة dropWhile()‎: تُزيِل المحارف الأولى المحققة لشرط معين من محارف السلسلة النصية أو سلسلة المحارف التي استُدعيت معها.

مصادر