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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>sumBy()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>sumBy()‎</code> مجموع عناصر Ko...')
 
ط
 
(3 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>sumBy()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>sumBy()‎</code> في Kotlin}}</noinclude>
تعيد الدالة<code>sumBy()‎</code> مجموع  عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.  
+
تجمع الدالة <code>sumBy()‎</code> جميع نواتج تطبيق دالة معيَّنة على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها.
 +
 
 +
الفرق بين الدالة <code>sumBy()‎</code> والدالة <code>[[Kotlin/collections/sumByDouble|sumByDouble()‎]]</code> هو في نوع القيمة التي تستطيع الدالة الممرَّر إلى كلٍّ منهما إعادتها، إذ تعيد الدالة المُمرَّرة إلى <code>sumBy()‎</code> عددًّا صحيحًا (integer) بينما يمكن أن تعيد الدالة الممرَّرة إلى <code>[[Kotlin/collections/sumByDouble|sumByDouble()‎]]</code> عددًا عشريًّا مضاعفًا (double). 
  
 
==البنية العامة==
 
==البنية العامة==
يمكن استدعاء الدالة<code>sumBy()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة <code>sumBy()‎</code> مع [[Kotlin/Array|المصفوفات]] و<nowiki/>[[Kotlin/collections|المجموعات]]:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
@JvmName("sumOfByte") fun Array<out Byte>.sum(): Int  
+
inline fun <T> Array<out T>.sumBy(selector: (T) -> Int): Int  
@JvmName("sumOfShort") fun Array<out Short>.sum(): Int  
+
inline fun ByteArray.sumBy(selector: (Byte) -> Int): Int
@JvmName("sumOfInt") fun Array<out Int>.sum(): Int  
+
inline fun ShortArray.sumBy(selector: (Short) -> Int): Int  
@JvmName("sumOfLong") fun Array<out Long>.sum(): Long
+
inline fun IntArray.sumBy(selector: (Int) -> Int): Int
@JvmName("sumOfFloat") fun Array<out Float>.sum(): Float
+
inline fun LongArray.sumBy(selector: (Long) -> Int): Int
@JvmName("sumOfDouble") fun Array<out Double>.sum(): Double
+
inline fun FloatArray.sumBy(selector: (Float) -> Int): Int  
fun ByteArray.sum(): Int
+
inline fun DoubleArray.sumBy(selector: (Double) -> Int): Int  
fun ShortArray.sum(): Int  
+
inline fun BooleanArray.sumBy(
fun IntArray.sum(): Int  
+
    selector: (Boolean) -> Int
fun LongArray.sum(): Long
+
): Int  
fun FloatArray.sum(): Float
+
inline fun CharArray.sumBy(selector: (Char) -> Int): Int
fun DoubleArray.sum(): Double
+
 
 +
inline fun <T> Iterable<T>.sumBy(selector: (T) -> Int): Int
 +
 
 +
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> التي تدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة<nowiki/> [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
  
</syntaxhighlight>يمكن استدعاء الدالة<code>sumBy()‎</code> عبر  [[Kotlin/collections|المجموعات]] :<syntaxhighlight lang="kotlin">
+
== المعاملات ==
@JvmName("sumOfByte") fun Iterable<Byte>.sum(): Int
+
 
@JvmName("sumOfShort") fun Iterable<Short>.sum(): Int
+
=== <code>selector</code> ===
@JvmName("sumOfInt") fun Iterable<Int>.sum(): Int
+
الدالة التي يراد تطبيقها على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة وتجميع الناتج الذي تعيده.
@JvmName("sumOfLong") fun Iterable<Long>.sum(): Long
+
 
@JvmName("sumOfFloat") fun Iterable<Float>.sum(): Float
+
== القيمة المعادة ==
@JvmName("sumOfDouble") fun Iterable<Double>.sum(): Double
+
تعاد القيمة الناتجة عن جمع نواتج تطبيق الدالة <code>selector</code> على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة.
</syntaxhighlight>
 
== القيمة المُعادة ==
 
مجموع  عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.
 
  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()sumBy</code> مع المصفوفات===
+
<nowiki/><nowiki/><nowiki/>استعمال الدالة <code>()sumBy</code> لجمع مربعات عناصر مصفوفة:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]] <nowiki/>باسم <code>array</code> مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf‎</code>، <nowiki/>ثم تستخدم الدالة<code>()sumBy</code>  على <code>array</code> لحساب مجموع عناصرها، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(3, 5, 7, 2 , 6, 9)
+
    val array = arrayOf(3, 5, 7, 2, 6, 9)
      
+
 
println(array.sum())// 32
+
     println(array.sumBy { it * it }) // 204
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
==أنظر أيضًا==
+
==انظر أيضًا==
* <code>[[Kotlin/collections/subtract|subtract()]]</code>‎ : تعيد [[Kotlin/Set|مجموعةً]] (<code>Set</code>)  تضم عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت عبرها والتي لا توجد في  [[Kotlin/collections|المجموعة]] المُمرّرة. 
+
* الدالة <code>[[Kotlin/collections/sum|sum()]]</code>: تجمع جميع قيم عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها ثمَّ تعيد الناتج. 
 +
* الدالة <code>[[Kotlin/collections/sumByDouble|sumByDouble()‎]]</code>: تجمع جميع نواتج تطبيق دالة معيَّنة على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها.
 +
* الدالة <code>[[Kotlin/collections/average|average()‎]]</code>: تحسب متوسط (average) عناصر المصفوفة أو المجموعة ([[Kotlin/collections|Collection]]) المعطاة لها.
 +
* الدالة [[Kotlin/collections/subtract|<code>subtract()</code>]]‎: تستثني العناصر المشتركة بين كائنين.
  
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sum.html الدالة  sumBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sum-by.html صفحة الدالة sumBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Collection]]

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

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

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

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

يمكن استدعاء الدالة sumBy()‎ مع المصفوفات والمجموعات:

inline fun <T> Array<out T>.sumBy(selector: (T) -> Int): Int 
inline fun ByteArray.sumBy(selector: (Byte) -> Int): Int
inline fun ShortArray.sumBy(selector: (Short) -> Int): Int 
inline fun IntArray.sumBy(selector: (Int) -> Int): Int 
inline fun LongArray.sumBy(selector: (Long) -> Int): Int 
inline fun FloatArray.sumBy(selector: (Float) -> Int): Int 
inline fun DoubleArray.sumBy(selector: (Double) -> Int): Int 
inline fun BooleanArray.sumBy(
    selector: (Boolean) -> Int
): Int 
inline fun CharArray.sumBy(selector: (Char) -> Int): Int 

inline fun <T> Iterable<T>.sumBy(selector: (T) -> Int): Int

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

المعاملات

selector

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

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

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

أمثلة

استعمال الدالة ()sumBy لجمع مربعات عناصر مصفوفة:

fun main(args: Array<String>) {
    val array = arrayOf(3, 5, 7, 2, 6, 9)

    println(array.sumBy { it * it }) // 204
}

انظر أيضًا

  • الدالة sum()‎: تجمع جميع قيم عناصر المصفوفة أو المجموعة التي استُدعيت معها ثمَّ تعيد الناتج. 
  • الدالة sumByDouble()‎: تجمع جميع نواتج تطبيق دالة معيَّنة على كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها.
  • الدالة average()‎: تحسب متوسط (average) عناصر المصفوفة أو المجموعة (Collection) المعطاة لها.
  • الدالة subtract()‎: تستثني العناصر المشتركة بين كائنين.

مصادر