الدالة getOrElse()
في Kotlin
تجلب الدالة 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)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي.