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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع getOrElse()‎ في لغة Kotlin}}</noinclude> يعيد التابع <code>getOrElse()‎</code> قيمة العنصر عند ا...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: التابع getOrElse()‎ في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: التابع getOrElse()‎ في لغة Kotlin}}</noinclude>
يعيد التابع <code>getOrElse()‎</code> قيمة العنصر عند الفهرس index المُحدَّد في المصفوفة، ويمكن أيضًا استدعاء هذا التابع باستخدام معامل  الفهرسة (index operator) بالشكل:<syntaxhighlight lang="kotlin">
+
تعيد الدالة <code>getOrElse()‎</code> قيمة العنصر عند الفهرس <code>index</code> المُحدَّد في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها. ، أو نتيجة استدعاء الدالة المُمرّرة  <code>defaultValue</code> إن كان الفهرس خارج الحدود.
value = arr[index]‎
 
</syntaxhighlight>
 
  
 +
ان استُدعيت الدالة عبر [[Kotlin/collections/Map|قاموس]] فستُعيد القيمة المقابلة للمفتاح <code>key</code> المُمرّر إلى الدالة، أو نتيجة استدعاء  الدالة المُمرّرة  <code>defaultValue</code> إن كان المفتاح <code>key</code> موجودًا.
 
== البنية العامة ==
 
== البنية العامة ==
<syntaxhighlight lang="kotlin">
+
يمكن استدعاء  الدالة <code>getOrElse()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
operator fun get(index: Int): T
+
inline fun <T> Array<out T>.getOrElse(
</syntaxhighlight>ويُلاحظ وجود الكلمة المفتاحية <code>operator</code> للدلالة على أنّ هذا التابع مرتبط بمعامل الفهرسة المذكور سابقًا.
+
    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>يمكن استدعاء  الدالة <code>getOrElse()‎</code> عبر [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
 +
inline fun <T> List<T>.getOrElse(
 +
    index: Int,
 +
    defaultValue: (Int) -> T
 +
): T  
 +
</syntaxhighlight>يمكن استدعاء  الدالة <code>getOrElse()‎</code> عبر [[Kotlin/collections|القواميس]]:<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)]].
  
 
== القيم المعادة ==
 
== القيم المعادة ==
العنصر عند الفهرس index المُحدَّد في المصفوفة.
+
قيمة العنصر عند الفهرس <code>index</code> المُحدَّد في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها. ، أو نتيجة استدعاء  الدالة المُمرّرة  <code>defaultValue</code> إن كان الفهرس خارج الحدود.
  
 +
ان استُدعيت الدالة عبر [[Kotlin/collections/Map|قاموس]] فستُعيد القيمة المقابلة للمفتاح <code>key</code> المُمرّر إلى الدالة، أو نتيجة استدعاء  الدالة المُمرّرة  <code>defaultValue</code> إن كان المفتاح <code>key</code> موجودًا.
 
== أمثلة ==
 
== أمثلة ==
  
=== استخدام التابع <code>getOrElse()‎</code> على مصفوفة ===
+
=== استخدام التابع <code>getOrElse()‎</code> على قاموس ===
تُنشئ الشيفرة الآتية مصفوفة من أربعة أعداد ثم تُطبع قيمة عنصرين من المصفوفة بطريقتين: الأولى باستدعاء التابع <code>getOrElse()</code>‎ مباشرة، والثانية باستخدام معامل الفهرسة:<syntaxhighlight lang="kotlin">
+
تُنشئ الشيفرة الآتية [[Kotlin/collections|قاموسًا]] باسم <code>map</code> بواسطة الدالة <code>mutableMapOf()</code>‎: ثم تستدعي <code>getOrElse()</code>‎ عبر <code>map</code> لأجل استعادة بعض القيم منه بتمرير قيمة المفتاح ودالة ثابتة تساوي 1:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(4,5,7,9)
+
val map = mutableMapOf<String, Int?>()
 +
println(map.getOrElse("x") { 1 }) // 1
 +
 
 +
map["x"] = 3
 +
println(map.getOrElse("x") { 1 }) // 3
  
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>: تعيد قيمة العنصر عند الفهرس <code>index</code> المُحدَّد في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها. ، أو <code>null</code> إن كان الفهرس خارج الحدود.
* التابع <code>[[Kotlin/Array/set|Array.set]]()‎</code>: يُعيّن قيمة العنصر عند الفهرس index المُحدَّد في المصفوفة.
 
  
 
== مصادر ==
 
== مصادر ==
* [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()<code>‎</code> في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Methods]]
 
[[تصنيف:Kotlin Methods]]

مراجعة 14:35، 19 مايو 2018

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

ان استُدعيت الدالة عبر قاموس فستُعيد القيمة المقابلة للمفتاح key المُمرّر إلى الدالة، أو نتيجة استدعاء الدالة المُمرّرة  defaultValue إن كان المفتاح key موجودًا.

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

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

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

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

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

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

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

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

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

ان استُدعيت الدالة عبر قاموس فستُعيد القيمة المقابلة للمفتاح key المُمرّر إلى الدالة، أو نتيجة استدعاء الدالة المُمرّرة  defaultValue إن كان المفتاح key موجودًا.

أمثلة

استخدام التابع getOrElse()‎ على قاموس

تُنشئ الشيفرة الآتية قاموسًا باسم map بواسطة الدالة mutableMapOf()‎: ثم تستدعي getOrElse()‎ عبر map لأجل استعادة بعض القيم منه بتمرير قيمة المفتاح ودالة ثابتة تساوي 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()‎: تعيد قيمة العنصر عند الفهرس index المُحدَّد في المصفوفة أو المجموعة التي استُدعيت عبرها. ، أو null إن كان الفهرس خارج الحدود.

مصادر