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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>elementAtOrElse()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>elementAtOrElse()‎</code> الع...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>elementAtOrElse()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>elementAtOrElse()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة<code>elementAtOrElse()‎</code> العنصر الموجود عند الفهرس (index) المحدد  من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] فستُطلق [[Kotlin/exceptions|استثناءً]]   [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-index-out-of-bounds-exception/index.html IndexOutOfBoundsException].
+
تعيد الدالة<code>elementAtOrElse()‎</code> العنصر الموجود عند الفهرس (index) المحدد  من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] فستُعيد ناتج تطبيق الدالة المُمرّرة <code>defaultValue()‎</code> على الفهرس.
  
 
== البنية العامة ==
 
== البنية العامة ==
يمكن استدعاء الدالة<code>elementAt()‎</code> على [[Kotlin/Array|المصفوفات]].<syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة<code>elementAtOrElse()‎</code> على [[Kotlin/Array|المصفوفات]].<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.elementAt(index: Int): T  
+
inline fun <T> Array<out T>.elementAtOrElse(
inline fun ByteArray.elementAt(index: Int): Byte  
+
    index: Int,
inline fun ShortArray.elementAt(index: Int): Short  
+
    defaultValue: (Int) -> T
inline fun IntArray.elementAt(index: Int): Int  
+
): T  
inline fun LongArray.elementAt(index: Int): Long  
+
inline fun ByteArray.elementAtOrElse(
inline fun FloatArray.elementAt(index: Int): Float  
+
    index: Int,
inline fun DoubleArray.elementAt(index: Int): Double  
+
    defaultValue: (Int) -> Byte
inline fun BooleanArray.elementAt(index: Int): Boolean  
+
): Byte  
inline fun CharArray.elementAt(index: Int): Char  
+
inline fun ShortArray.elementAtOrElse(
</syntaxhighlight>يمكن استدعاء الدالة<code>elementAt()‎</code> على [[Kotlin/Array|المجموعات]].<syntaxhighlight lang="kotlin">
+
    index: Int,
fun <T> Iterable<T>.elementAt(index: Int): T  
+
    defaultValue: (Int) -> Short
 
+
): Short  
</syntaxhighlight>يمكن استدعاء الدالة<code>elementAt()‎</code> على [[Kotlin/List|اللوائح]].<syntaxhighlight lang="kotlin">
+
inline fun IntArray.elementAtOrElse(
inline fun <T> List<T>.elementAt(index: Int): T
+
    index: Int,
 
+
    defaultValue: (Int) -> Int
 +
): Int  
 +
inline fun LongArray.elementAtOrElse(
 +
    index: Int,
 +
    defaultValue: (Int) -> Long
 +
): Long  
 +
inline fun FloatArray.elementAtOrElse(
 +
    index: Int,
 +
    defaultValue: (Int) -> Float
 +
): Float  
 +
inline fun DoubleArray.elementAtOrElse(
 +
    index: Int,
 +
    defaultValue: (Int) -> Double
 +
): Double  
 +
inline fun BooleanArray.elementAtOrElse(
 +
    index: Int,
 +
    defaultValue: (Int) -> Boolean
 +
): Boolean  
 +
inline fun CharArray.elementAtOrElse(
 +
    index: Int,
 +
    defaultValue: (Int) -> Char
 +
): Char  
 +
</syntaxhighlight>يمكن استدعاء الدالة<code>elementAtOrElse()‎</code> على [[Kotlin/Array|المجموعات]].<syntaxhighlight lang="kotlin">
 +
fun <T> Iterable<T>.elementAtOrElse(
 +
    index: Int,
 +
    defaultValue: (Int) -> T
 +
): T  
 +
</syntaxhighlight>يمكن استدعاء الدالة<code>elementAtOrElse()‎</code> على [[Kotlin/List|اللوائح]].<syntaxhighlight lang="kotlin">
 +
inline fun <T> List<T>.elementAtOrElse(
 +
    index: Int,
 +
    defaultValue: (Int) -> T
 +
): T
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
  
 
== القيم المعادة ==
 
== القيم المعادة ==
  
العنصر الموجود عند الفهرس (index) المحدد  من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]]  فستُطلق [[Kotlin/exceptions|استثناءً]]  [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-index-out-of-bounds-exception/index.html IndexOutOfBoundsException].
+
العنصر الموجود عند الفهرس (index) المحدد  من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]]  فستُعيد ناتج تطبيق الدالة المُمرّرة <code>defaultValue()‎</code> على الفهرس.
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()elementAt</code> مع المصفوفات  ===
+
===استخدام الدالة <code>()elementAt</code> مع المصفوفات: الحالة الأولى ===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()elementAt</code> للحصول على العنصر الموجود عند الفهرس <code>3</code> ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تعرف دالة باسم  <code>default،</code> ثم تستخدم الدالة <code>()elementAt</code> للحصول على العنصر الموجود عند الفهرس <code>2</code> ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
val array = arrayOf(1,2,3,4,5,6)
 
val array = arrayOf(1,2,3,4,5,6)
println(array.elementAt(3)) // 4
+
val default: (Int) -> Int = { it * 10}
 +
 
 +
println(array.elementAtOrElse(2,default)) // 3
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
===استخدام الدالة <code>()elementAtOrElse</code> مع المصفوفات  ===
+
===استخدام الدالة <code>()elementAtOrElse</code> مع المصفوفات: الحالة الثانية ===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()elementAtOrElse</code> للحصول على العنصر الموجود عند الفهرس <code>12،</code> ولما كان هذا الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] فستُطلق الدالة [[Kotlin/exceptions|استثناءً]]:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تعرف دالة باسم  <code>()default،</code>ثم تستخدم الدالة <code>()elementAt</code> للحصول على العنصر الموجود عند الفهرس <code>12،</code> ولما كان هذا الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] فستُعيد الدالة ناتج تطبيق الدالة <code>()default</code> على الفهرس المُمرّر (<code>12</code>) ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
val array = arrayOf(1,2,3,4,5,6)
 
val array = arrayOf(1,2,3,4,5,6)
println(array.elementAt(12))  
+
val default: (Int) -> Int = { it * 10}
 +
println(array.elementAtOrElse(12,default)) // 120
 
}
 
}
</syntaxhighlight>
 
الخرج سيكون كما يلي:<syntaxhighlight lang="kotlin">
 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 12
 
    at Simplest_versionKt.main(Simplest version.kt:3)
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا  ==
 
==انظر أيضًا  ==
* <code>[[Kotlin/collections/elementAtOrElse|elementAtOrElse()]]</code>‎: تعيد العنصر الموجود عند الفهرس (index) المحدد  من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]]  فستعيد ناتج تطبيق الدالة المُمررة على الفهرس.
+
* <code>[[Kotlin/collections/elementAt|elementAt()]]</code>‎: تعيد العنصر الموجود عند الفهرس (index) المحدد  من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]]  فستُطلق <nowiki/>[[Kotlin/exceptions|استثناءً]]  [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-index-out-of-bounds-exception/index.html IndexOutOfBoundsException].
 +
* <code>[[Kotlin/collections/elementAtOrNull|elementAtOrNull()]]</code>‎: تعيد العنصر الموجود عند الفهرس (index) المحدد  من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]]  فستُعيد القيمة المعدومة <code>null</code>.
  
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/element-at.html الدالة  elementAtOrElse()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/element-at-or-else.html الدالة  elementAtOrElse()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 19:22، 13 مايو 2018

تعيد الدالةelementAtOrElse()‎ العنصر الموجود عند الفهرس (index) المحدد من المصفوفة أو المجموعة التي استُدعيت عبرها، وفي حال كان ذلك الفهرس خارج حدود المصفوفة أو المجموعة فستُعيد ناتج تطبيق الدالة المُمرّرة defaultValue()‎ على الفهرس.

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

يمكن استدعاء الدالةelementAtOrElse()‎ على المصفوفات.

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

يمكن استدعاء الدالةelementAtOrElse()‎ على المجموعات.

fun <T> Iterable<T>.elementAtOrElse(
    index: Int, 
    defaultValue: (Int) -> T
): T

يمكن استدعاء الدالةelementAtOrElse()‎ على اللوائح.

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

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

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

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

أمثلة

استخدام الدالة ()elementAt مع المصفوفات: الحالة الأولى

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونة من ستة أعداد باستخدام الدالة ()arrayOf، ثم تعرف دالة باسم default، ثم تستخدم الدالة ()elementAt للحصول على العنصر الموجود عند الفهرس 2 ثم تطبع الناتج:

fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4,5,6)
val default: (Int) -> Int = { it * 10}

println(array.elementAtOrElse(2,default)) // 3
}

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

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونة من ستة أعداد باستخدام الدالة ()arrayOf، ثم تعرف دالة باسم ()default،ثم تستخدم الدالة ()elementAt للحصول على العنصر الموجود عند الفهرس 12، ولما كان هذا الفهرس خارج حدود المصفوفة فستُعيد الدالة ناتج تطبيق الدالة ()default على الفهرس المُمرّر (12) ثم تطبع الناتج:

fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4,5,6)
val default: (Int) -> Int = { it * 10}
println(array.elementAtOrElse(12,default)) // 120
}

انظر أيضًا

مصادر