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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.withIndex()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>withIndex()‎</code> جزءًا...'
 
مراجعة وتدقيق.
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.withIndex()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>withIndex()‎</code> في Kotlin}}</noinclude>
تعيد الدالة <code>withIndex()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف الأحرف الأخير. (انظر فقرة [[Kotlin/kotlin.text/trimEnd#.D8.A7.D9.84.D8.A8.D9.86.D9.8A.D8.A9 .D8.A7.D9.84.D8.B9.D8.A7.D9.85.D8.A9|البنية العامة]]).   
تعيد الدالة <code>withIndex()‎</code> مجموعة تكرارية خاملة (lazy Iterable) من [[Kotlin/collections/IndexedValue|القيم المُفهرسة]] لكل محرف من محارف [[Kotlin/CharSequence/index|السلسلة]] التي استُدعيت معها.   
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
inline fun CharSequence.trimEnd(
fun CharSequence.withIndex(): Iterable<IndexedValue<Char>>  
    predicate: (Char) -> Boolean
): CharSequence
</syntaxhighlight>تعيد  الدالة <code>withIndex()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها بعد حذف الأحرف الأخيرة التي تحقق الشرط المنطقي المُحدّد <code>predicate.</code> <syntaxhighlight lang="kotlin">
inline fun String.trimEnd(
    predicate: (Char) -> Boolean
): String
</syntaxhighlight>تعيد  الدالة <code>trimEnd()‎</code> جزءًا من [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف الأحرف الأخيرة التي تحقق الشرط المنطقي المُحدّد <code>predicate.</code><syntaxhighlight lang="kotlin">
fun CharSequence.trimEnd(vararg chars: Char): CharSequence
</syntaxhighlight>تعيد  الدالة <code>trimEnd()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها بعد حذف الأحرف الأخيرة التي تنتمي إلى المصفوفة المُمرّرة <code>chars.</code><syntaxhighlight lang="kotlin">
fun String.trimEnd(vararg chars: Char): String
</syntaxhighlight>تعيد  الدالة <code>trimEnd()‎</code> جزءًا من  [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف الأحرف الأخيرة التي تنتمي إلى المصفوفة المُمرّرة <code>chars.</code><syntaxhighlight lang="kotlin">
fun CharSequence.trimEnd(): CharSequence
 
</syntaxhighlight>تعيد  الدالة <code>trimEnd()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها بعد حذف المسافات البيضاء الأخيرة.<syntaxhighlight lang="kotlin">
inline fun String.trimEnd(): String
 
</syntaxhighlight>تعيد  الدالة <code>trim()‎</code> جزءًا من  [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف المسافات البيضاء الأخيرة.
 
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].


</syntaxhighlight>
==القيم المعادة==
==القيم المعادة==
[[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]].  
تعاد <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) برمجيةٍ على كافّة محارف السلسلة المستدعاة معه.

مصادر