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

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


==أمثلة==
==أمثلة==
===استخدام الدالة <code>()forEachIndexed</code> مع سلسلة نصية===
مثالٌ على استعمال الدالة <code>()forEachIndexed</code><nowiki/>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()forEachIndexed</code> عبرها مع تمرير دالة كوسيط، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
     val str = "Hsoub wiki"
     val str = "Hsoubwiki"


     str.forEachIndexed { index, char -> print("$index => $char | ") }  
     str.forEachIndexed { index, char -> print("$index => $char | ") }
     // 0 => H | 1 => s | 2 => o | 3 => u | 4 => b | 5 =>   | 6 => w | 7 => i | 8 => k | 9 => i |  
     // 0 => H | 1 => s | 2 => o | 3 => u | 4 => b | 5 => w | 6 => i | 7 => k | 8 => i |  
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
* <code>[[Kotlin/kotlin.text/foldIndexed|foldIndexed()]]‎</code>: تُراكِم الدالة<code>foldIndexed()‎</code> القيم بدءًا من القيمة المُمرّرة <code>initial</code> وتطبّق العملية <code>operation</code> من اليسار إلى اليمين على القيمة الراهنة وعلى الحرف الموالي في  [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها  وكذلك فهرسه. ثم تُعيد القيمة النهائية
* الدالة <code>[[Kotlin/kotlin.text/forEach|forEach()]]‎</code>: تُنفّد الدالةَ المُمرّرةَ إليها على كل محرف من محارف [[Kotlin/CharSequence|السلسلة]] التي استُدعيت معها
 
* الدالة <code>[[Kotlin/kotlin.text/foldIndexed|foldIndexed()]]‎</code>: تجمِّع تراكميًّا ناتج تطبيق عملية معينة على فهرس كل محرف من محارف السلسلة المستدعاة معها (من اليسار إلى اليمين) وقيمته والقيمة التراكمية الحالية مع قيمة أولية إن أعطيت
* <code>[[Kotlin/kotlin.text/fold|fold()]]‎</code>: تُراكِم الدالة<code>fold()‎</code> القيم بدءًا من القيمة المُمرّرة <code>initial</code> وتطبّق العملية <code>operation</code> من اليسار إلى اليمين على القيمة الراهنة وعلى الحرف الموالي في  سلسلة الحروف التي استُدعيت عبرها. ثم تُعيد القيمة النهائية. 
 
* <code>[[Kotlin/kotlin.text/elementAt|elementAt()]]‎</code>: تعيد الحرف الموجود في الفهرس المُحدّد في سلسلة الحروف التي استُدعيت عبرها، في حال كان الفهرس خارج الحدود فستطلق الاستثناء <code>IndexOutOfBoundsException</code>


==مصادر==
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/for-each-indexed.html الدالة text.forEachIndexed()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/for-each-indexed.html صفحة الدالة CharSequence.forEachIndexed()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Text]]
[[تصنيف:Kotlin CharSequence]]

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

تُنفّد الدالةُ forEachIndexed()‎ الدالةَ المُمرّرةَ إليها على كل محرف من محارف السلسلة التي استُدعيت معها وعلى فهرس ذلك المحرف.

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

inline fun CharSequence.forEachIndexed(
    action: (index: Int, Char) -> Unit)

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

المعاملات

action

الدالة المراد تنفيذها مع كل محرف من محارف السلسلة المعطاة. يمرر إليها فهرس المحرف index وقيمته Char.

أمثلة

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

fun main(args: Array<String>) {
    val str = "Hsoubwiki"

    str.forEachIndexed { index, char -> print("$index => $char | ") }
    // 0 => H | 1 => s | 2 => o | 3 => u | 4 => b | 5 => w | 6 => i | 7 => k | 8 => i | 
}

انظر أيضًا

  • الدالة forEach(): تُنفّد الدالةَ المُمرّرةَ إليها على كل محرف من محارف السلسلة التي استُدعيت معها. 
  • الدالة foldIndexed(): تجمِّع تراكميًّا ناتج تطبيق عملية معينة على فهرس كل محرف من محارف السلسلة المستدعاة معها (من اليسار إلى اليمين) وقيمته والقيمة التراكمية الحالية مع قيمة أولية إن أعطيت. 

مصادر