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

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


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


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

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

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

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

inline fun CharSequence.filterIndexed(
    predicate: (index: Int, Char) -> Boolean
): CharSequence

inline fun String.filterIndexed(
    predicate: (index: Int, Char) -> Boolean
): String

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

المعاملات

predicate

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

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

تُعاد سلسلة من المحارف أو سلسلة نصية تحوي المحارف التي أعيدت القيمة true معها عند تطبيق الدالة predicate عليها.

أمثلة

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

fun main(args: Array<String>) {
    val str = "Hsoub Academy"
    val list = StringBuilder()

    println(str.filterIndexedTo(list) { index, char ->
        (char.toByte() < index + 97)
    }) //  Hb Acade
}

انظر أيضًا

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

مصادر