الفرق بين المراجعتين لصفحة: «Kotlin/collections/getOrElse»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(4 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة getOrElse() في | <noinclude>{{DISPLAYTITLE: الدالة <code>getOrElse()</code> في Kotlin}}</noinclude> | ||
تجلب الدالة <code>getOrElse()</code> عنصرًا ذا فهرس مُحدَّد من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها أو القيمة المقابلة لمفتاح محدَّد إن استدعيت مع خريطة. إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة أو كان المفتاح المعطى غير موجود في الخريطة، فسيُعاد ناتج استدعاء دالة معيَّنة معطاة. | |||
== البنية العامة == | == البنية العامة == | ||
يمكن استدعاء الدالة <code>getOrElse()</code> | يمكن استدعاء الدالة <code>getOrElse()</code> مع [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin"> | ||
inline fun <T> Array<out T>.getOrElse( | inline fun <T> Array<out T>.getOrElse( | ||
index: Int, | index: Int, | ||
سطر 42: | سطر 40: | ||
): Char | ): Char | ||
</syntaxhighlight> | </syntaxhighlight>ويمكن استدعاؤها مع [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin"> | ||
inline fun <T> List<T>.getOrElse( | inline fun <T> List<T>.getOrElse( | ||
index: Int, | index: Int, | ||
defaultValue: (Int) -> T | defaultValue: (Int) -> T | ||
): T | ): T | ||
</syntaxhighlight> | </syntaxhighlight>ويمكن استدعاؤها أيضًا مع الخرائط:<syntaxhighlight lang="kotlin"> | ||
inline fun <K, V> Map<K, V>.getOrElse( | inline fun <K, V> Map<K, V>.getOrElse( | ||
key: K, | key: K, | ||
defaultValue: () -> V | defaultValue: () -> V | ||
): V | ): V | ||
</syntaxhighlight> | </syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]). | ||
== المعاملات == | |||
=== <code>index</code> === | |||
عدد صحيح يمثل فهرس العنصر المراد جلبه. | |||
=== <code>defaultValue</code> === | |||
دالةٌ تُستدعَى عندما يقع الفهرس <code>index</code> خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة المعطاة. | |||
== القيم المعادة == | == القيم المعادة == | ||
قيمة العنصر | تُعاد قيمة العنصر ذي الفهرس <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>) { | fun main(args: Array<String>) { | ||
val map = mutableMapOf<String, Int?>() | val map = mutableMapOf<String, Int?>() | ||
println(map.getOrElse("x") { 1 }) // 1 | println(map.getOrElse("x") { 1 }) // 1 | ||
map["x"] = 3 | map["x"] = 3 | ||
println(map.getOrElse("x") { 1 }) // 3 | println(map.getOrElse("x") { 1 }) // 3 | ||
map["x"] = null | map["x"] = null | ||
println(map.getOrElse("x") { 1 }) // 1 | println(map.getOrElse("x") { 1 }) // 1 | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* <code>[[Kotlin/collections/getOrNull|getOrNull | * الدالة <code>[[Kotlin/collections/getOrNull|getOrNull()]]</code>: تجلب عنصرًا ذي فهرس مُحدَّد من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها أو تعيد القيمة <code>null</code> إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة. | ||
* الدالة <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.collections/get-or-else.html | * [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/get-or-else.html صفحة الدالة getOrElse() في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف: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)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي.