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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(مراجعة وتدقيق.)
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.withIndex()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>withIndex()‎</code> في Kotlin}}</noinclude>
تعيد الدالة <code>withIndex()‎</code> مُكرّرا مؤجّلًا (lazy <code>Iterable</code>) مكونًا من عناصر من الصنف <code>IndexedValue</code> لكل حرف من حروف [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها.   
+
تعيد الدالة <code>withIndex()‎</code> مجموعة تكرارية خاملة (lazy Iterable) من [[Kotlin/collections/IndexedValue|القيم المُفهرسة]] لكل محرف من محارف [[Kotlin/CharSequence/index|السلسلة]] التي استُدعيت معها.   
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
سطر 7: سطر 7:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==القيم المعادة==
 
==القيم المعادة==
مُكرّر مؤجّل (lazy <code>Iterable</code>) مكون من عناصر من الصنف <code>IndexedValue</code>
+
تعاد <nowiki/>[[Kotlin/Iterable|مجموعة تكرارية]] خاملة (lazy Iterable) من [[Kotlin/collections/IndexedValue|القيم المُفهرسة]] لكل محرف من محارف [[Kotlin/CharSequence/index|السلسلة]] المعطاة.
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()withIndex</code> مع سلسلة نصية===
+
مثالٌ على استعمال الدالة <code>()withIndex</code> مع [[Kotlin/String|سلسلة نصية]] ثم إسناد الناتج الذي تعيده إلى المتغير <code>iter</code>، لاستخدامه في حلقة تكرارية [[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|<code>for</code>]]:<syntaxhighlight lang="kotlin">
تستدعي الشيفرة الآتية الدالة  <code>()withIndex</code> عبر عدة [[Kotlin/String|سلاسل نصية]]، و<nowiki/>تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
     println("   hsoub   ".trimEnd()) // "    hsoub"
+
     val iter = "hsoub".withIndex()
     println( "++++hsoub......".trimEnd {!it.isLetter()} ) // ++++hsoub
+
 
 +
    for (x in iter) println(x)
 +
    // المخرجات
 +
    //IndexedValue(index=0, value=h)
 +
     //IndexedValue(index=1, value=s)
 +
    //IndexedValue(index=2, value=o)
 +
    //IndexedValue(index=3, value=u)
 +
    //IndexedValue(index=4, value=b)
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
* <code>[[Kotlin/kotlin.text/trim|trim()]]</code>: تعيد  الدالة <code>trim()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف الأحرف الأولى والأخيرالتي تحقق الشرط المنطقي المُحدّد <code>predicate.</code>
+
*الدالة <code>[[Kotlin/kotlin.text/asIterable|asIterable()]]</code>: تنشئ نسخةً من الواجهة <code>Iterable</code> التي تغلّف <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها لاستعمالها في الحلقات التكرارية، إذ تعيد محارفها عندما تُستخدَم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).
 
+
* الدالة <code>[[Kotlin/kotlin.text/iterator|iterator()]]</code>: تنشئ عنصرًا تكراريًّا (iterator) لتكرار بنيةٍ (block) برمجيةٍ على كافّة محارف <nowiki/>[[Kotlin/CharSequence|السلسلة]] المستدعاة معه.
* <code>[[Kotlin/kotlin.text/substringAfter|substringAfter()]]‎</code>: تعيد الدالة <code>substringAfter()‎</code> جزءًا من [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها والمُتواجد بعد أول ظهور للمُحدِّد <code>delimiter،</code> إن لم تكن [[Kotlin/String|السلسلة النصية]] الأصلية تحتوي <code>delimiter</code>، فستعيد القيمة المُمرّرة <code>missingDelimiterValue</code>، والتي قيمتها الافتراضية هي [[Kotlin/String|السلسلة النصية]] الأصلية. 
 
* <code>[[Kotlin/kotlin.text/substringBefore|substringBefore()]]</code>: تعيد  الدالة <code>substringBefore()‎</code> جزءًا من [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها والمُتواجد قبل أول ظهور للمُحدِّد <code>delimiter،</code> إن لم تكن [[Kotlin/String|السلسلة النصية]] الأصلية تحتوي <code>delimiter</code>، فستعيد القيمة المُمرّرة <code>missingDelimiterValue</code>، والتي قيمتها الافتراضية هي [[Kotlin/String|السلسلة النصية]] الأصلية. 
 
 
 
* <code>[[Kotlin/kotlin.text/removeSuffix|removeSuffix()]]</code>: إن كانت [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استٌدعيت عبرها الدالة <code>removeSuffix()‎</code> تنتهي باللاحقة <code>suffix</code> فستعيد [[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع حذف تلك اللاحقة، وإلا فستعيد [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] كما هي. 
 
* <code>[[Kotlin/kotlin.text/slice|slice()]]‎</code>: تعيد  الدالة <code>slice()‎</code> [[Kotlin/CharSequence/index|سلسلة حروف]] أو [[Kotlin/String|سلسلة نصية]] جديدة تحتوي الحروف التي تنتمي فهارسها إلى الوسيط المُمرر. 
 
 
 
 
==مصادر==
 
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/trim-end.html الدالة text.withIndex()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/with-index.html صفحة الدالة withIndex()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Text]]

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

تعيد الدالة withIndex()‎ مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل محرف من محارف السلسلة التي استُدعيت معها.

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

fun CharSequence.withIndex(): Iterable<IndexedValue<Char>>

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

تعاد مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل محرف من محارف السلسلة المعطاة.

أمثلة

مثالٌ على استعمال الدالة ()withIndex مع سلسلة نصية ثم إسناد الناتج الذي تعيده إلى المتغير iter، لاستخدامه في حلقة تكرارية for:

fun main(args: Array<String>) {
    val iter = "hsoub".withIndex()

    for (x in iter) println(x)
    // المخرجات
    //IndexedValue(index=0, value=h)
    //IndexedValue(index=1, value=s)
    //IndexedValue(index=2, value=o)
    //IndexedValue(index=3, value=u)
    //IndexedValue(index=4, value=b)
}

انظر أيضًا

  • الدالة asIterable()‎: تنشئ نسخةً من الواجهة Iterable التي تغلّف سلسلة المحارف التي استُدعيت معها لاستعمالها في الحلقات التكرارية، إذ تعيد محارفها عندما تُستخدَم في حلقات التكرار (مثل for).
  • الدالة iterator()‎: تنشئ عنصرًا تكراريًّا (iterator) لتكرار بنيةٍ (block) برمجيةٍ على كافّة محارف السلسلة المستدعاة معه.

مصادر