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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع getOrElse()‎ في لغة Kotlin}}</noinclude> يعيد التابع <code>getOrElse()‎</code> قيمة العنصر عند ا...'
 
طلا ملخص تعديل
 
(6 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع getOrElse()‎ في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>getOrElse()‎</code> في Kotlin}}</noinclude>
يعيد التابع <code>getOrElse()‎</code> قيمة العنصر عند الفهرس index المُحدَّد في المصفوفة، ويمكن أيضًا استدعاء هذا التابع باستخدام معامل  الفهرسة (index operator) بالشكل:<syntaxhighlight lang="kotlin">
تجلب الدالة <code>getOrElse()‎</code> عنصرًا ذا فهرس مُحدَّد من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها أو القيمة المقابلة لمفتاح محدَّد إن استدعيت مع خريطة. إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة أو كان المفتاح المعطى غير موجود في الخريطة، فسيُعاد ناتج استدعاء دالة معيَّنة معطاة.
value = arr[index]
== البنية العامة ==
</syntaxhighlight>
يمكن استدعاء الدالة <code>getOrElse()‎</code> مع [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.getOrElse(
    index: Int,
    defaultValue: (Int) -> T
): T
inline fun ByteArray.getOrElse(
    index: Int,
    defaultValue: (Int) -> Byte
): Byte
inline fun ShortArray.getOrElse(
    index: Int,
    defaultValue: (Int) -> Short
): Short
inline fun IntArray.getOrElse(
    index: Int,
    defaultValue: (Int) -> Int
): Int
inline fun LongArray.getOrElse(
    index: Int,
    defaultValue: (Int) -> Long
): Long
inline fun FloatArray.getOrElse(
    index: Int,
    defaultValue: (Int) -> Float
): Float
inline fun DoubleArray.getOrElse(
    index: Int,
    defaultValue: (Int) -> Double
): Double
inline fun BooleanArray.getOrElse(
    index: Int,
    defaultValue: (Int) -> Boolean
): Boolean
inline fun CharArray.getOrElse(
    index: Int,
    defaultValue: (Int) -> Char
): Char
 
</syntaxhighlight>ويمكن استدعاؤها مع [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
inline fun <T> List<T>.getOrElse(
    index: Int,
    defaultValue: (Int) -> T
): T
</syntaxhighlight>ويمكن استدعاؤها أيضًا مع الخرائط:<syntaxhighlight lang="kotlin">
inline fun <K, V> Map<K, V>.getOrElse(
    key: K,
    defaultValue: () -> V
): V
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
 
== المعاملات ==
 
=== <code>index</code> ===
عدد صحيح يمثل فهرس العنصر المراد جلبه.


== البنية العامة ==
=== <code>defaultValue</code> ===
<syntaxhighlight lang="kotlin">
دالةٌ تُستدعَى عندما يقع الفهرس <code>index</code> خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة المعطاة.
operator fun get(index: Int): T
</syntaxhighlight>ويُلاحظ وجود الكلمة المفتاحية <code>operator</code> للدلالة على أنّ هذا التابع مرتبط بمعامل الفهرسة المذكور سابقًا.


== القيم المعادة ==
== القيم المعادة ==
العنصر عند الفهرس index المُحدَّد في المصفوفة.
تُعاد قيمة العنصر ذي الفهرس <code>index</code> المُحدَّد في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة أو القيمة المقابلة لمفتاح محدَّد في الخريطة المعطاة. إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة أو كان المفتاح المعطى غير موجود في الخريطة، فسيُعاد ناتج استدعاء الدالة <code>defaultValue</code> المعطاة.
 
== أمثلة ==
== أمثلة ==
تُنشئ الشيفرة الآتية خريطة باسم <code>map</code> بواسطة الدالة <code>mutableMapOf()</code>‎ ثم تستدعي الدالة <code>getOrElse()</code>‎ مع تلك الخريطة لجلب بعض القيم منها عبر تمرير قيمة المفتاح وتعيين دالة ثابتة تساوي 1:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
    val map = mutableMapOf<String, Int?>()
    println(map.getOrElse("x") { 1 }) // 1


=== استخدام التابع <code>getOrElse()‎</code> على مصفوفة ===
    map["x"] = 3
تُنشئ الشيفرة الآتية مصفوفة من أربعة أعداد ثم تُطبع قيمة عنصرين من المصفوفة بطريقتين: الأولى باستدعاء التابع <code>getOrElse()</code>‎ مباشرة، والثانية باستخدام معامل الفهرسة:<syntaxhighlight lang="kotlin">
    println(map.getOrElse("x") { 1 }) // 3
fun main(args: Array<String>) {
val array = arrayOf(4,5,7,9)


println(array.get(2)) // 7
    map["x"] = null
println(array[1]) // 5
    println(map.getOrElse("x") { 1 }) // 1
}
}
</syntaxhighlight>
</syntaxhighlight>


== انظر أيضًا ==
== انظر أيضًا ==
* الخاصية <code>[[Kotlin/Array/size|Array.size]]</code>: تعبِّر عن عدد العناصر الموجودة في المصفوفة.
* الدالة <code>[[Kotlin/collections/getOrNull|getOrNull()‎]]</code>: تجلب عنصرًا ذي فهرس مُحدَّد من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها أو تعيد القيمة <code>null</code> إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة.
* التابع <code>[[Kotlin/Array/set|Array.set]]()</code>: يُعيّن قيمة العنصر عند الفهرس index المُحدَّد في المصفوفة.
* الدالة <code>[[Kotlin/collections/elementAtOrElse|elementAtOrElse()‎]]</code>: تجلب عنصرًا ذي فهرس معيَّن من <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/Array|المجموعة]] التي استُدعيت معها. إن كان الفهرس المعطى خارج حدود <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/Array|المجموعة]]، فستُعيد الدالة ناتج استدعاء دالة معينة.
* الدالة <code>[[Kotlin/collections/filterNot|filterNot()]]</code>: تعيد قائمةً تحوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي لا تحقق شرطًا منطقيًّا محدَّدًا. إن استدعيت مع خريطة (map)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي.


== مصادر ==
== مصادر ==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/get.html التابع getOrElse في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin]
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/get-or-else.html صفحة الدالة getOrElse()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Methods]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Collection]]

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

تجلب الدالة getOrElse()‎ عنصرًا ذا فهرس مُحدَّد من المصفوفة أو المجموعة التي استُدعيت معها أو القيمة المقابلة لمفتاح محدَّد إن استدعيت مع خريطة. إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة أو كان المفتاح المعطى غير موجود في الخريطة، فسيُعاد ناتج استدعاء دالة معيَّنة معطاة.

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

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

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

ويمكن استدعاؤها مع المجموعات:

inline fun <T> List<T>.getOrElse(
    index: Int, 
    defaultValue: (Int) -> T
): T

ويمكن استدعاؤها أيضًا مع الخرائط:

inline fun <K, V> Map<K, V>.getOrElse(
    key: K, 
    defaultValue: () -> V
): V

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

المعاملات

index

عدد صحيح يمثل فهرس العنصر المراد جلبه.

defaultValue

دالةٌ تُستدعَى عندما يقع الفهرس index خارج حدود المصفوفة أو المجموعة أو الخريطة المعطاة.

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

تُعاد قيمة العنصر ذي الفهرس index المُحدَّد في المصفوفة أو المجموعة المعطاة أو القيمة المقابلة لمفتاح محدَّد في الخريطة المعطاة. إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة أو كان المفتاح المعطى غير موجود في الخريطة، فسيُعاد ناتج استدعاء الدالة defaultValue المعطاة.

أمثلة

تُنشئ الشيفرة الآتية خريطة باسم map بواسطة الدالة mutableMapOf()‎ ثم تستدعي الدالة getOrElse()‎ مع تلك الخريطة لجلب بعض القيم منها عبر تمرير قيمة المفتاح وتعيين دالة ثابتة تساوي 1:

fun main(args: Array<String>) {
    val map = mutableMapOf<String, Int?>()
    println(map.getOrElse("x") { 1 }) // 1

    map["x"] = 3
    println(map.getOrElse("x") { 1 }) // 3

    map["x"] = null
    println(map.getOrElse("x") { 1 }) // 1
}

انظر أيضًا

  • الدالة getOrNull()‎: تجلب عنصرًا ذي فهرس مُحدَّد من المصفوفة أو المجموعة التي استُدعيت معها أو تعيد القيمة null إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة.
  • الدالة elementAtOrElse()‎: تجلب عنصرًا ذي فهرس معيَّن من المصفوفة أو المجموعة التي استُدعيت معها. إن كان الفهرس المعطى خارج حدود المصفوفة أو المجموعة، فستُعيد الدالة ناتج استدعاء دالة معينة.
  • الدالة filterNot()‎: تعيد قائمةً تحوي عناصر المصفوفة أو المجموعة التي لا تحقق شرطًا منطقيًّا محدَّدًا. إن استدعيت مع خريطة (map)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي.

مصادر