الفرق بين المراجعتين لصفحة: «Kotlin/collections/requireNoNulls»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>requireNoNulls()‎</code> في لغة Kotlin}}</noinclude> تُراكِم الدالة<code>requireNoNulls()‎</code> ا...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>requireNoNulls()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>requireNoNulls()‎</code> في لغة Kotlin}}</noinclude>
تُراكِم الدالة<code>requireNoNulls()‎</code> القيم بدءًا من العنصر الأول  في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها وتطبّق العملية <code>operation</code> من اليسار إلى اليمين على القيمة المُتراكمة الراهنة وعلى العنصر الموالي في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها وعلى فهرسه. ثم تُعيد القيمة النهائية.  
تُعيد الدالة<code>requireNoNulls()‎</code> [[Kotlin/Array|مصفوفة]] أو [[Kotlin/collections|مجموعة]] أو [[Kotlin/List|لائحة]] تضم جميع العناصر غير المعدومة (non-<code>null</code>) في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها. في حال كان هناك عنصر معدوم (<code>null</code>) فستطلق  الدالةُ<code>requireNoNulls()‎</code> الاستثناء <code>IllegalArgumentException</code>.  
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
inline fun <S, T : S> Array<out T>.reduceIndexed(
fun <T : Any> Array<T?>.requireNoNulls(): Array<T>  
    operation: (index: Int, acc: S, T) -> S
fun <T : Any> Iterable<T?>.requireNoNulls(): Iterable<T>  
): S
fun <T : Any> List<T?>.requireNoNulls(): List<T>  
inline fun ByteArray.reduceIndexed(
</syntaxhighlight>
    operation: (index: Int, acc: Byte, Byte) -> Byte
==القيم المٌعادة==
): Byte
[[Kotlin/Array|مصفوفة]] أو [[Kotlin/collections|مجموعة]]  أو [[Kotlin/List|لائحة]] تضم جميع العناصر غير المعدومة (non-<code>null</code>) في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها.  
inline fun ShortArray.reduceIndexed(
    operation: (index: Int, acc: Short, Short) -> Short
): Short
inline fun IntArray.reduceIndexed(
    operation: (index: Int, acc: Int, Int) -> Int
): Int
inline fun LongArray.reduceIndexed(
    operation: (index: Int, acc: Long, Long) -> Long
): Long
inline fun FloatArray.reduceIndexed(
    operation: (index: Int, acc: Float, Float) -> Float
): Float
inline fun DoubleArray.reduceIndexed(
    operation: (index: Int, acc: Double, Double) -> Double
): Double
inline fun BooleanArray.reduceIndexed(
    operation: (index: Int, acc: Boolean, Boolean) -> Boolean
): Boolean
inline fun CharArray.reduceIndexed(
    operation: (index: Int, acc: Char, Char) -> Char
): Char
 
</syntaxhighlight>تُراكِم الدالة<code>reduceIndexed()‎</code> القيم بدءًا من العنصر الأول وتطبّق العملية <code>operation</code> من اليسار إلى اليمين على القيمة المُتراكمة الراهنة وعلى العنصر الموالي في [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها وعلى فهرسه. ثم تُعيد القيمة النهائية.<syntaxhighlight lang="kotlin">
inline fun <S, T : S> Iterable<T>.reduceIndexed(
    operation: (index: Int, acc: S, T) -> S
): S
</syntaxhighlight>تُراكِم الدالة<code>reduceIndexed()‎</code> القيم بدءًا من العنصر الأول وتطبّق العملية <code>operation</code> من اليسار إلى اليمين على القيمة المُتراكمة الراهنة وعلى العنصر الموالي في [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها وعلى فهرسه. ثم تُعيد القيمة النهائية.


يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
== أمثلة ==


==القيم المٌعادة==
قيمة التطبيق التراكُمي من اليسار إلى اليمين للعملية <code>operation</code> على عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها وعلى فهارسها.
==أمثلة==
===استخدام الدالة <code>()requireNoNulls</code> مع المصفوفات===
===استخدام الدالة <code>()requireNoNulls</code> مع المصفوفات===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code> مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()requireNoNulls</code> على <code>array</code> بتمرير  دال، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحة]]<nowiki/> باسم <code>list</code> مكونة من ستة أعداد باستخدام الدالة <code>()List<Int?>‎</code>، ثم تستخدم الدالة <code>()requireNoNulls</code> على <code>list</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
var list = List<Int?>(6, { it } )
   
print(list.requireNoNulls()) // [0, 1, 2, 3, 4, 5]
}
</syntaxhighlight>
===استخدام الدالة <code>()requireNoNulls</code> مع المصفوفات: الحالة الثانية===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحة]] باسم <code>list</code> مكونة من ستة أعداد باستخدام الدالة <code>()List<Int?>‎</code>، ثم تستخدم الدالة <code>()requireNoNulls</code> على <code>list</code>، ولما كانت<code>list</code> تضم عنصرًا يساوي <code>null</code> فستطلق استثناءً، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4,5,6)
var list = List<Int?>(6, { if (it < 5) it else null } ) // [0, 1, 2, 3, 4, null]
 
   
val acc = array.reduceIndexed { acc , element , index -> acc + element*index }
print(list.requireNoNulls()) // إطلاق استثناء
print(acc) // 1439
}
}
</syntaxhighlight>
</syntaxhighlight>
سطر 55: سطر 32:


==مصادر==
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/reduce-indexed.html الدالة  requireNoNulls()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/require-no-nulls.html الدالة  requireNoNulls()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Functions]]

مراجعة 18:10، 3 يونيو 2018

تُعيد الدالةrequireNoNulls()‎ مصفوفة أو مجموعة أو لائحة تضم جميع العناصر غير المعدومة (non-null) في المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها. في حال كان هناك عنصر معدوم (null) فستطلق الدالةُrequireNoNulls()‎ الاستثناء IllegalArgumentException.

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

fun <T : Any> Array<T?>.requireNoNulls(): Array<T> 
fun <T : Any> Iterable<T?>.requireNoNulls(): Iterable<T> 
fun <T : Any> List<T?>.requireNoNulls(): List<T>

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

مصفوفة أو مجموعة أو لائحة تضم جميع العناصر غير المعدومة (non-null) في المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها.

أمثلة

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

تعرف الشيفرة الآتية لائحة باسم list مكونة من ستة أعداد باستخدام الدالة ()List<Int?>‎، ثم تستخدم الدالة ()requireNoNulls على list، ثم تطبع الناتج:

fun main(args: Array<String>) {
var list = List<Int?>(6, { it } ) 
    
print(list.requireNoNulls()) // [0, 1, 2, 3, 4, 5]
}

استخدام الدالة ()requireNoNulls مع المصفوفات: الحالة الثانية

تعرف الشيفرة الآتية لائحة باسم list مكونة من ستة أعداد باستخدام الدالة ()List<Int?>‎، ثم تستخدم الدالة ()requireNoNulls على list، ولما كانتlist تضم عنصرًا يساوي null فستطلق استثناءً، ثم تطبع الناتج:

fun main(args: Array<String>) {
var list = List<Int?>(6, { if (it < 5) it else null } ) // [0, 1, 2, 3, 4, null]
    
print(list.requireNoNulls()) // إطلاق استثناء
}

انظر أيضًا

  • reduce()‎: تُراكِم القيم بدءًا من العنصر الأول وتطبّق العملية operation من اليسار إلى اليمين على القيمة المُتراكمة الراهنة وعلى العنصر التالي وفهرسه.

مصادر