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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.sumBy()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>CharSequence.sumBy()‎</code> في Kotlin}}</noinclude>
تعيد الدالة <code>sumBy()‎</code> مجموع القيم التي تُعيدها الدالة المُمرّرة <code>selector</code> مُطبّقة على عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]].   
+
تجمع الدالة <code>sumBy()‎</code> جميع نواتج تطبيق دالة معيَّنة على كل محرف من محارف [[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها. 
 +
 
 +
الفرق بين الدالة <code>sumBy()‎</code> والدالة <code>[[Kotlin/kotlin.text/sumByDouble|sumByDouble()‎]]</code> هو في نوع القيمة التي تستطيع الدالة الممرَّر إلى كلٍّ منهما إعادتها، إذ تعيد الدالة المُمرَّرة إلى <code>sumBy()‎</code> عددًّا صحيحًا (integer) بينما يمكن أن تعيد الدالة الممرَّرة إلى <nowiki/>[[Kotlin/kotlin.text/sumByDouble|<code></code>]]<code>[[Kotlin/collections/sumByDouble|sumByDouble()‎]]</code> عددًا عشريًّا مضاعفًا (double).   
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
 
inline fun CharSequence.sumBy(selector: (Char) -> Int): Int  
 
inline fun CharSequence.sumBy(selector: (Char) -> Int): Int  
  
</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>Int</code>.  
+
يعاد عدد صحيح يمثل القيمة الناتجة عن جمع نواتج تطبيق الدالة <code>selector</code> على كل محرف من محارف [[Kotlin/CharSequence|السلسلة]] المعطاة.  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()sumBy</code> مع سلسلة نصية===
+
مثال على استعمال الدالة <code>()sumBy</code><nowiki/>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()sumBy</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.sumBy {it.toInt()}) // 1392
+
     println(str.sumBy { it.toInt() }) // 1392
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
* <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/sumByDouble|sumByDouble()]]</code>: تجمع جميع نواتج تطبيق دالة معيَّنة على كل محرف من محارف [[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها.
* <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/groupBy|groupBy()]]</code>: تجمِّع محارف <nowiki/>[[Kotlin/CharSequence|السلسلة]] التي استُدعيت معها في مجموعات، إذ تطبق دالة محدَّدة على كل عنصر ثمَّ تعاد خريطة تحوي مجموعاتٍ مفتاحُ كلِّ واحدةٍ منها مرتبطٌ بقائمة من المحارف المقابلة.
* <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.html الدالة text.sumBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/sum-by.html صفحة الدالة CharSequence.sumBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Text]]

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

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

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

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

inline fun CharSequence.sumBy(selector: (Char) -> Int): Int

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

المعاملات

selector

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

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

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

أمثلة

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

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

    println(str.sumBy { it.toInt() }) // 1392
}

انظر أيضًا

  • الدالة sumByDouble()‎: تجمع جميع نواتج تطبيق دالة معيَّنة على كل محرف من محارف سلسلة المحارف التي استُدعيت معها.
  • الدالة fold(): تجمِّع تراكميًّا ناتج تطبيق عملية معينة على كل محرف من محارف السلسلة المستدعاة معها (من اليسار إلى اليمين) والقيمة التراكمية الحالية مع قيمة أولية إن أعطيت.
  • الدالة groupBy()‎: تجمِّع محارف السلسلة التي استُدعيت معها في مجموعات، إذ تطبق دالة محدَّدة على كل عنصر ثمَّ تعاد خريطة تحوي مجموعاتٍ مفتاحُ كلِّ واحدةٍ منها مرتبطٌ بقائمة من المحارف المقابلة.

مصادر