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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>sumBy()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>sumBy()‎</code> مجموع عناصر Ko...')
 
سطر 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> مجموع  العناصر المُعادة من الدالة <code>selector</code> مطبقةً على عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.  
  
 
==البنية العامة==
 
==البنية العامة==
 
يمكن استدعاء الدالة<code>sumBy()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
 
يمكن استدعاء الدالة<code>sumBy()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<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
 
  
 
</syntaxhighlight>يمكن استدعاء الدالة<code>sumBy()‎</code> عبر  [[Kotlin/collections|المجموعات]] :<syntaxhighlight lang="kotlin">
 
</syntaxhighlight>يمكن استدعاء الدالة<code>sumBy()‎</code> عبر  [[Kotlin/collections|المجموعات]] :<syntaxhighlight lang="kotlin">
@JvmName("sumOfByte") fun Iterable<Byte>.sum(): Int
+
inline fun <T> Iterable<T>.sumBy(selector: (T) -> Int): Int
@JvmName("sumOfShort") fun Iterable<Short>.sum(): Int  
+
 
@JvmName("sumOfInt") fun Iterable<Int>.sum(): Int
+
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
@JvmName("sumOfLong") fun Iterable<Long>.sum(): Long
+
 
@JvmName("sumOfFloat") fun Iterable<Float>.sum(): Float
 
@JvmName("sumOfDouble") fun Iterable<Double>.sum(): Double
 
</syntaxhighlight>
 
 
== القيمة المُعادة ==
 
== القيمة المُعادة ==
مجموع  عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.
+
مجموع  العناصر المُعادة من الدالة <code>selector</code> مطبقةً على عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.
  
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()sumBy</code> مع المصفوفات===
 
===استخدام الدالة <code>()sumBy</code> مع المصفوفات===
تعرف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]] <nowiki/>باسم <code>array</code> مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf‎</code>، <nowiki/>ثم تستخدم الدالة<code>()sumBy</code>  على <code>array</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/sum|sum()]]</code>‎ : تعيد  مجموع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.
 
* <code>[[Kotlin/collections/subtract|subtract()]]</code>‎ : تعيد [[Kotlin/Set|مجموعةً]] (<code>Set</code>)  تضم عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت عبرها والتي لا توجد في  [[Kotlin/collections|المجموعة]] المُمرّرة. 
 
* <code>[[Kotlin/collections/subtract|subtract()]]</code>‎ : تعيد [[Kotlin/Set|مجموعةً]] (<code>Set</code>)  تضم عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت عبرها والتي لا توجد في  [[Kotlin/collections|المجموعة]] المُمرّرة. 
  
 
==مصادر==
 
==مصادر==
*[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 Functions]]

مراجعة 13:47، 23 يونيو 2018

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

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

يمكن استدعاء الدالة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

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

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

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

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

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

أمثلة

استخدام الدالة ()sumBy مع المصفوفات

تعرف الشيفرة الآتية  مصفوفة باسم array مكونة من ستة أعداد باستخدام الدالة ()arrayOf‎، ثم تستخدم الدالة()sumBy  على arrayمع تمرير دالة كوسيط، ثم تطبع الناتج:

fun main(args: Array<String>) {
val array = arrayOf(3, 5, 7, 2 , 6, 9)
    
println(array.sumBy {it*it} )// 204
}

أنظر أيضًا

مصادر