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

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


==القيم المعادة==
==القيم المعادة==
القيمة النهائية لتطبيق العملية <code>operation</code>بشكل تراكمي على عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]].
يعاد [[Kotlin/Char|محرفُ]] يمثل القيمة النهائية الناتجة عن تطبيق العملية <code>operation</code> بشكل تراكمي من اليمين إلى اليسار على كل محرف من محارف [[Kotlin/CharSequence/index|السلسلة]] المعطاة.
 
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()reduceRight</code> مع سلسلة نصية===
مثالٌ على استعمال الدالة <code>()reduceRight</code><nowiki/>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()reduceRight</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 wiki"
      
 
val max = str.reduceRight { max, element -> if (max > element) max else element }
     val max = str.reduceRight { max, element -> if (max > element) max else element }
print(max) // w
    print(max) // w
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
* <code>[[Kotlin/kotlin.text/reduceIndexed|reduceIndexed()]]‎</code>: تُراكِم الدالة<code>reduceIndexed()‎</code> القيم بدءًا من الحرف الأول وتطبّق العملية <code>operation</code> من اليسار إلى اليمين على القيمة الراهنة وعلى الحرف الموالي في  [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها  وكذلك فهرسه. ثم تُعيد القيمة النهائية. 
* الدالة <code>[[Kotlin/kotlin.text/reduce|reduce()]]‎</code>: قيمة محرف بدءًا من المحرف الأول عبر تطبيق عملية معينة من يسار سلسلة المحارف المعطاة إلى يمينها على القيمة المتراكمة الحالية وعلى الحرف التالي ثم تُعيد قيمة المحرف النهائي الناتج.
 
* الدالة <code>[[Kotlin/kotlin.text/reduceRightIndexed|reduceRightIndexed()]]</code>: تُراكِم قيمة محرف بدءًا من المحرف الأول من السلسلة المعطاة عبر تطبيق عملية معينة من يمين هذه السلسلة إلى يسارها على القيمة المتراكمة الحالية وفهرس المحرف الحالي وقيمته ثم تُعيد قيمة المحرف النهائي الناتج.
* <code>[[Kotlin/kotlin.text/reduce|reduce()]]</code>:تُراكِم الدالة<code>reduce()‎</code> القيم بدءًا من الحرف الأول وتطبّق العملية <code>operation</code> من اليسار إلى اليمين على القيمة الراهنة وعلى الحرف الموالي في  سلسلة الحروف التي استُدعيت عبرها. ثم تُعيد القيمة النهائية. 
* الدالة <code>[[Kotlin/kotlin.text/foldRight|foldRight()]]</code>: تجمِّع تراكميًّا ناتج تطبيق عملية معينة على كل محرف من محارف السلسلة المستدعاة معها (بدءًا من اليمين إلى اليسار) والقيمة التراكمية الحالية مع قيمة أولية إن أعطيت.
 
* <code>[[Kotlin/kotlin.text/filterIndexedTo|filterIndexedTo()]]</code>: تضيف الدالة <code>filterIndexedTo()</code>‎ كل الحروف من سلسلة الحروف التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate</code> إلى الوسيط المُمرّر <code>destination</code>. يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()‎</code> ثم تعيد بدورها قيمة منطقيَّة. 
 
* <code>[[Kotlin/kotlin.text/elementAt|elementAt()]]‎</code>: تعيد الحرف الموجود في الفهرس المُحدّد في سلسلة الحروف التي استُدعيت عبرها، في حال كان الفهرس خارج الحدود فستطلق الاستثناء <code>IndexOutOfBoundsException</code>. 


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

المراجعة الحالية بتاريخ 04:38، 5 سبتمبر 2018

تُراكِم الدالة reduceRight()‎ قيمة محرف بدءًا من المحرف الأول عبر تطبيق عملية معينة من يمين سلسلة المحارف المعطاة إلى يسارها على القيمة المتراكمة الحالية وعلى الحرف التالي ثم تُعيد قيمة المحرف النهائي الناتج.

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

inline fun CharSequence.reduceRight(
    operation: (Char, acc: Char) -> Char
): Char

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

المعاملات

operation

دالة يراد تطبيقها على كل محرف من محارف السلسلة المعطاة. يمرر إليها القيمة المتراكمة الحالية (التي تمثل محرفًا) وقيمة المحرف الحالي الذي ستطبق عليه هذه الدالة ثم تحسب قيمة المحرف المتراكم التالي.

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

يعاد محرفُ يمثل القيمة النهائية الناتجة عن تطبيق العملية operation بشكل تراكمي من اليمين إلى اليسار على كل محرف من محارف السلسلة المعطاة.

أمثلة

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

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

    val max = str.reduceRight { max, element -> if (max > element) max else element }
    print(max) // w
}

انظر أيضًا

  • الدالة reduce(): قيمة محرف بدءًا من المحرف الأول عبر تطبيق عملية معينة من يسار سلسلة المحارف المعطاة إلى يمينها على القيمة المتراكمة الحالية وعلى الحرف التالي ثم تُعيد قيمة المحرف النهائي الناتج.
  • الدالة reduceRightIndexed()‎: تُراكِم قيمة محرف بدءًا من المحرف الأول من السلسلة المعطاة عبر تطبيق عملية معينة من يمين هذه السلسلة إلى يسارها على القيمة المتراكمة الحالية وفهرس المحرف الحالي وقيمته ثم تُعيد قيمة المحرف النهائي الناتج.
  • الدالة foldRight()‎: تجمِّع تراكميًّا ناتج تطبيق عملية معينة على كل محرف من محارف السلسلة المستدعاة معها (بدءًا من اليمين إلى اليسار) والقيمة التراكمية الحالية مع قيمة أولية إن أعطيت.

مصادر