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

من موسوعة حسوب
ط استبدال النص - 'Kotlin Functions' ب'Kotlin Function'
طلا ملخص تعديل
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.sumByDouble()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>CharSequence.sumByDouble()‎</code> في Kotlin}}</noinclude>
تعيد  الدالة <code>sumByDouble()‎</code> عددًا من النوع <code>Double </code> يساوي مجموع القيم العددية التي تُعيدها الدالة المُمرّرة <code>selector</code> مُطبّقة على عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]].
تجمع الدالة <code>sumByDouble()‎</code> جميع نواتج تطبيق دالة معيَّنة على كل محرف من محارف [[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها. 
 
الفرق بين الدالة <code>sumByDouble()‎</code> والدالة <code>[[Kotlin/kotlin.text/sumBy|sumBy()‎]]</code> هو في نوع القيمة التي تستطيع الدالة الممرَّر إلى كلٍّ منهما إعادتها، إذ تعيد الدالة المُمرَّرة إلى <nowiki/>[[Kotlin/collections/sumBy|<code>sumBy()‎</code>]] عددًّا صحيحًا (integer) بينما يمكن أن تعيد الدالة الممررة إلى <code>sumByDouble()‎</code> عددًا عشريًّا مضاعفًا (double).
 
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
سطر 6: سطر 9:
     selector: (Char) -> Double
     selector: (Char) -> Double
): Double  
): Double  
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].  
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> التي تدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
 
== المعاملات ==
 
=== <code>selector</code> ===
الدالة التي يراد تطبيقها على كل محرف من محارف [[Kotlin/CharSequence/index|سلسلة المحارف]] المعطاة وتجميع الناتج الذي تعيده.
 
==القيم المعادة==
==القيم المعادة==
عدد من النوع <code>Double</code>.  
يعاد [[Kotlin/Double|عدد عشري مضاعف]] يمثل القيمة الناتجة عن جمع نواتج تطبيق الدالة <code>selector</code> على كل عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة.  
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()sumByDouble</code> مع سلسلة نصية===
مثالٌ على استعمال الدالة <code>()sumByDouble</code><nowiki/>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()sumByDouble</code> عبرها مع تمرير دالة تُحوّل الحروف إلى قيم عددية، <nowiki/>ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val str = "wiki.hsoub.com"
    val str = "wiki.hsoub.com"
      
 
println(str.sumByDouble {it.toDouble()}) // 1392.0
     println(str.sumByDouble { it.toDouble() }) // 1392.0
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
* <code>[[Kotlin/kotlin.text/sumBy|sumBy()]]‎</code>: تعيد  الدالة <code>sumBy()‎</code>عددًا من النوع <code>Int</code> يساوي مجموع القيم التي تُعيدها الدالة المُمرّرة <code>selector</code> مُطبّقة على عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]]. 
* الدالة <code>[[Kotlin/kotlin.text/sumBy|sumBy()]]‎</code>: تجمع جميع نواتج تطبيق دالة معيَّنة على كل محرف من محارف [[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها
* <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/fold|fold()]]‎</code>: تجمِّع تراكميًّا ناتج تطبيق عملية معينة على كل محرف من محارف السلسلة المستدعاة معها (من اليسار إلى اليمين) والقيمة التراكمية الحالية مع قيمة أولية إن أعطيت.
 
* الدالة <code>[[Kotlin/kotlin.text/groupingBy|groupingBy()]]</code>: تُنشئ موردًا (source) من النوع <code>Grouping</code> من <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها لاستخدامه لاحقًا مع عمليات التجميع (group-and-fold operations) وذلك باستخدام الدالة <code>keySelector</code> المُمرّرة إليها لاستخلاص مفتاح من كل محرف.
* <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/sum-by-double.html الدالة text.sumByDouble()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/sum-by-double.html صفحة الدالة CharSequence.sumByDouble()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Text]]

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

تجمع الدالة sumByDouble()‎ جميع نواتج تطبيق دالة معيَّنة على كل محرف من محارف سلسلة المحارف التي استُدعيت معها.

الفرق بين الدالة sumByDouble()‎ والدالة sumBy()‎ هو في نوع القيمة التي تستطيع الدالة الممرَّر إلى كلٍّ منهما إعادتها، إذ تعيد الدالة المُمرَّرة إلى sumBy()‎ عددًّا صحيحًا (integer) بينما يمكن أن تعيد الدالة الممررة إلى sumByDouble()‎ عددًا عشريًّا مضاعفًا (double).

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

inline fun CharSequence.sumByDouble(
    selector: (Char) -> Double
): Double

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

المعاملات

selector

الدالة التي يراد تطبيقها على كل محرف من محارف سلسلة المحارف المعطاة وتجميع الناتج الذي تعيده.

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

يعاد عدد عشري مضاعف يمثل القيمة الناتجة عن جمع نواتج تطبيق الدالة selector على كل عنصر من عناصر المصفوفة أو المجموعة المعطاة.

أمثلة

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

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

    println(str.sumByDouble { it.toDouble() }) // 1392.0
}

انظر أيضًا

  • الدالة sumBy(): تجمع جميع نواتج تطبيق دالة معيَّنة على كل محرف من محارف سلسلة المحارف التي استُدعيت معها. 
  • الدالة fold(): تجمِّع تراكميًّا ناتج تطبيق عملية معينة على كل محرف من محارف السلسلة المستدعاة معها (من اليسار إلى اليمين) والقيمة التراكمية الحالية مع قيمة أولية إن أعطيت.
  • الدالة groupingBy()‎: تُنشئ موردًا (source) من النوع Grouping من سلسلة المحارف التي استُدعيت معها لاستخدامه لاحقًا مع عمليات التجميع (group-and-fold operations) وذلك باستخدام الدالة keySelector المُمرّرة إليها لاستخلاص مفتاح من كل محرف.

مصادر