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

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


==القيم المعادة==
==القيم المعادة==
القيمة النهائية لتطبيق العملية <code>operation</code>بشكل تراكمي على عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]].
يعاد المحرف ذو الفهرس <code>index</code> من [[Kotlin/CharSequence|سلسلة المحارف]] المعطاة، أو ناتج استدعاء الدالة <code>defaultValue</code> إن كان الفهرس المعطى يقع خارج حدود [[Kotlin/CharSequence|سلسلة المحارف]] تلك.


==أمثلة==
==أمثلة==
===استخدام الدالة <code>()getOrElse</code> مع سلسلة نصية===
مثالٌ على استعمال الدالة <code>()getOrElse</code><nowiki/>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()getOrElse</code> عبرها مع تمرير القيمة الابتدائية <code>'A'</code> ودالة كوسيطين وتحيل القيمة الناتجة إلى المتغير <code>max</code>، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val str = "hsoub wiki"
    val str = "Hsoub"
      
 
val max = str.foldRight('A') { max, element -> if (max > element) max else element }
     print(str.getOrElse(3) { it.toChar() }) // => u
print(max) // w
    print(str.getOrElse(5) { '-' }) // => -
}
}
</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/getOrNull|getOrNull()]]‎</code>: تجلب محرفًا ذا فهرس مُحدَّد من <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها أو تعيد القيمة <code>null</code> إن كان الفهرس المعطى يقع خارج حدود <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]].  
 
* <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>. 
* الدالة <code>[[Kotlin/kotlin.text/elementAtOrElse|elementAtOrElse()]]</code>: تجلب محرفًا ذي فهرس معيَّن من <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها.
* الدالة <code>[[Kotlin/kotlin.text/filter|filter()‎]]</code>: ترشِّح محارف <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو السلسلة النصية المعطاة بناءً على قيمة المحرف التي تحقِّق شرطًا معيَّنًا.


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

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

تجلب الدالة getOrElse()‎ محرفًا ذا فهرس مُحدَّد من سلسلة المحارف التي استُدعيت معها. إن كان الفهرس المعطى يقع خارج حدود سلسلة المحارف، فسيُعاد ناتج استدعاء دالة معيَّنة معطاة.

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

inline fun CharSequence.getOrElse(
    index: Int, 
    defaultValue: (Int) -> Char
): Char

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

المعاملات

index

عدد صحيح يمثل فهرس المحرف المراد جلبه.

defaultValue

دالةٌ تُستدعَى عندما يقع الفهرس index خارج حدود سلسلة المحارف.

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

يعاد المحرف ذو الفهرس index من سلسلة المحارف المعطاة، أو ناتج استدعاء الدالة defaultValue إن كان الفهرس المعطى يقع خارج حدود سلسلة المحارف تلك.

أمثلة

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

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

    print(str.getOrElse(3) { it.toChar() }) // => u
    print(str.getOrElse(5) { '-' }) // => -
}

انظر أيضًا

مصادر