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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>single()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>single()‎</code>Kotlin/Array|المصف...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>single()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>single()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة<code>single()‎</code>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] أو [[Kotlin/Map|القاموس]] الذي استُدعيت عبره إن لم يكن يساوي <code>null</code>، أو تعيد [[Kotlin/Array|مصفوفة]] أو <nowiki/>[[Kotlin/collections|مجموعة]] أو [[Kotlin/List|لائحة]] أو [[Kotlin/Map|قاموسًا]] فارغًا.
+
تعيد الدالة<code>single()‎</code>العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها، وفي حال تمرير شرط منطقي <code>predicate</code> كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. أمّا في حال كانت الكائن الذي استُدعيت عبره يحتوي أكثر من عنصر واحد (يحقق <code>predicate</code>  في حال تمريرها) أو لا يحتوي أي واحد (يحقق <code>predicate</code>  في حال تمريرها) فستطلق الدالة  <code>single()‎</code>[[Kotlin/exceptions|استثناءً]].
 
==البنية العامة==
 
==البنية العامة==
يمكن استدعاء الدالة <code>single()‎</code> عبر  '''[[Kotlin/Array|المصفوفات]]:'''<syntaxhighlight lang="kotlin">
+
في حال استدعاء الدالة <code>single()‎</code> عبر <nowiki/>[[Kotlin/Array|مصفوفة]] دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك <nowiki/>[[Kotlin/Array|المصفوفة]]. وفي حال كانت تلك [[Kotlin/Array|المصفوفة]] فارغة أو تحتوي أكثر من عنصر واحد فستطلق الدالة  <code>single()‎</code>[[Kotlin/exceptions|استثناءً]]:<syntaxhighlight lang="kotlin">
inline fun <reified T> Array<out T>?.orEmpty(): Array<out T>  
+
fun <T> Array<out T>.single(): T
 +
fun ByteArray.single(): Byte
 +
fun ShortArray.single(): Short
 +
fun IntArray.single(): Int
 +
fun LongArray.single(): Long
 +
fun FloatArray.single(): Float
 +
fun DoubleArray.single(): Double
 +
fun BooleanArray.single(): Boolean
 +
fun CharArray.single(): Char
 +
</syntaxhighlight>في حال استدعاء الدالة <code>single()‎</code> عبر <nowiki/>[[Kotlin/Array|مصفوفة]] مع تمرير شرط منطقي <code>predicate</code> كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي في تلك <nowiki/>[[Kotlin/Array|المصفوفة]]. وفي حال كانت تلك [[Kotlin/Array|المصفوفة]] تحتوي أكثر من عنصر واحد يحقق ذلك الشرط المنطقي أو لا تحتوي أي واحد فستطلق الدالة  <code>single()‎</code>[[Kotlin/exceptions|استثناءً]]:<syntaxhighlight lang="kotlin">
 +
inline fun <T> Array<out T>.single(
 +
    predicate: (T) -> Boolean
 +
): T
 +
inline fun ByteArray.single(
 +
    predicate: (Byte) -> Boolean
 +
): Byte
 +
inline fun ShortArray.single(
 +
    predicate: (Short) -> Boolean
 +
): Short
 +
inline fun IntArray.single(predicate: (Int) -> Boolean): Int (source)
 +
inline fun LongArray.single(
 +
    predicate: (Long) -> Boolean
 +
): Long
 +
inline fun FloatArray.single(
 +
    predicate: (Float) -> Boolean
 +
): Float
 +
inline fun DoubleArray.single(
 +
    predicate: (Double) -> Boolean
 +
): Double
 +
inline fun BooleanArray.single(
 +
    predicate: (Boolean) -> Boolean
 +
): Boolean
 +
inline fun CharArray.single(
 +
    predicate: (Char) -> Boolean
 +
): Char
 +
inline fun <T> Iterable<T>.single(
 +
    predicate: (T) -> Boolean
 +
): T
  
</syntaxhighlight>يمكن استدعاء الدالة <code>orEmpty()‎</code> عبر  [[Kotlin/collections|المجموعات]]''':'''
+
</syntaxhighlight>في حال استدعاء الدالة <code>single()‎</code> عبر <nowiki/>[[Kotlin/collections|مجموعة]] دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك <nowiki/>[[Kotlin/collections|المجموعة]]. وفي حال كانت تلك [[Kotlin/collections|المجموعة]] فارغة أو تحتوي أكثر من عنصر واحد فستطلق الدالة <code>single()‎</code>[[Kotlin/exceptions|استثناءً]]:<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
+
fun <T> Iterable<T>.single(): T  
inline fun <T> Collection<T>?.orEmpty(): Collection<T>
 
  
</syntaxhighlight>يمكن استدعاء الدالة <code>single()‎</code> عبر  [[Kotlin/List|اللوائح]]''':'''
+
</syntaxhighlight>في حال استدعاء الدالة <code>single()‎</code> عبر  [[Kotlin/List|لائحة]] دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك <nowiki/>[[Kotlin/List|اللائحة]]. وفي حال كانت تلك [[Kotlin/List|اللائحة]] فارغة أو تحتوي أكثر من عنصر واحد فستطلق الدالة <code>single()‎</code>[[Kotlin/exceptions|استثناءً]]:<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
+
fun <T> List<T>.single(): T  
inline fun <T> List<T>?.orEmpty(): List<T>
 
  
</syntaxhighlight>يمكن استدعاء الدالة <code>single()‎</code> عبر  '''[[Kotlin/Map|القواميس]]:'''<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>
inline fun <K, V> Map<K, V>?.orEmpty(): Map<K, V> (source)
 
 
 
</syntaxhighlight>يمكن استدعاء الدالة <code>single()‎</code> عبر  المجموعات من النوع <code>[[Kotlin/Set|Set]]</code>''':'''<syntaxhighlight lang="kotlin">
 
inline fun <K, V> Map<K, V>?.orEmpty(): Map<K, V> (source)
 
 
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
 
==القيم المٌعادة==
 
==القيم المٌعادة==
[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] أو [[Kotlin/Map|القاموس]] الذي استُدعيت عبره إن لم يكن يساوي <code>null</code>، أو تعيد  [[Kotlin/Array|مصفوفة]] أو <nowiki/>[[Kotlin/collections|مجموعة]] أو [[Kotlin/List|لائحة]] أو [[Kotlin/Map|قاموسًا]] فارغًا.
+
العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها، وفي حال تمرير شرط منطقي <code>predicate</code> كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. أما في حال كانت تلك [[Kotlin/Array|المصفوفة]] تحتوي أكثر من عنصر واحد (يحقق <code>predicate</code>  في حال تمريرها) أو لا تحتوي أي واحد (يحقق <code>predicate</code>  في حال تمريرها) فستطلق الدالة <code>single()‎</code>[[Kotlin/exceptions|استثناءً]].
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()single</code> مع المصفوفات===
 
===استخدام الدالة <code>()single</code> مع المصفوفات===
تعرف الشيفرة الآتية  عنصرًا من النوع <code>Array<Any>?</code>‎ باسم <code>nullArray</code><nowiki/>، وتعطيه القيمة <code>null</code>، ثم تستدعي الدالة <code>()single</code>  عبر <code>nullArray</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية  لائحة باسم <code>array</code> مكونة من عنصر واحد باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة  <code>()single</code>  على <code>array</code>وتطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val nullArray: Array<Any>? = null
+
var array = arrayOf(0)
   
+
 
println(nullArray.orEmpty().contentToString()) // []
+
print(array.single()) // 0
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===استخدام الدالة <code>()single</code> مع المصفوفات===
 
===استخدام الدالة <code>()single</code> مع المصفوفات===
تعرف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ثلاثة حروف باستخدام الدالة <code>()arrayOf</code>، ثم تستدعي الدالة <code>()single</code> عبر <code>array</code> ، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية  لائحة باسم <code>array</code> مكونة من عنصرين باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة  <code>()single</code>  على <code>array</code>،ولمّا كانت <code>array</code> تحتوي أكثر من عنصر واحد، فستطلق [[Kotlin/exceptions|استثناءً]]:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array: Array<Char>? = arrayOf('a', 'b', 'c')
+
var array = arrayOf(0, 6)
   
+
 
println(array.orEmpty().contentToString()) // [a, b, c]
+
print(array.single()) // إطلاق استثناء
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==أنظر أيضًا==
== أنظر أيضًا ==
+
*<code>[[Kotlin/collections/singleOrNull|singleOrNull()]]</code>‎: تعيد العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها، وفي حال تمرير شرط منطقي <code>predicate</code> كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. وفي حال كان الكائن الذي استُدعيت عبره يحتوي أكثر من عنصر واحد (يحقق <code>predicate</code> في حال تمريرها) أو لا يحتوي أي واحد (يحقق <code>predicate</code> في حال تمريرها) فستعيد الدالة  <code>single()‎</code> القيمة <code>null</code>.
* <code>[[Kotlin/collections/none|none()]]</code>‎: تعيد القيمة <code>true</code> إن كانت [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها فارغة، أو تعيد <code>false</code>. وفي حال تمرير شرط منطقي <code>predicate</code>. فستعيد <code>true</code> إن لم يكن هناك  أي عنصر يحقق ذلك الشرط المنطقي،  أو تعيد <code>false</code>.
+
==مصادر==
 
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/single.html الدالة  single()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
== مصادر ==
+
[[تصنيف:Kotlin]]
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/or-empty.html الدالة  single()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
[[تصنيف:Kotlin Functions]]

مراجعة 11:04، 4 يونيو 2018

تعيد الدالةsingle()‎العنصر الوحيد الموجود في المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها، وفي حال تمرير شرط منطقي predicate كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. أمّا في حال كانت الكائن الذي استُدعيت عبره يحتوي أكثر من عنصر واحد (يحقق predicate في حال تمريرها) أو لا يحتوي أي واحد (يحقق predicate في حال تمريرها) فستطلق الدالة  single()‎استثناءً.

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

في حال استدعاء الدالة single()‎ عبر مصفوفة دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك المصفوفة. وفي حال كانت تلك المصفوفة فارغة أو تحتوي أكثر من عنصر واحد فستطلق الدالة  single()‎استثناءً:

fun <T> Array<out T>.single(): T 
fun ByteArray.single(): Byte 
fun ShortArray.single(): Short 
fun IntArray.single(): Int 
fun LongArray.single(): Long 
fun FloatArray.single(): Float 
fun DoubleArray.single(): Double 
fun BooleanArray.single(): Boolean
fun CharArray.single(): Char

في حال استدعاء الدالة single()‎ عبر مصفوفة مع تمرير شرط منطقي predicate كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي في تلك المصفوفة. وفي حال كانت تلك المصفوفة تحتوي أكثر من عنصر واحد يحقق ذلك الشرط المنطقي أو لا تحتوي أي واحد فستطلق الدالة  single()‎استثناءً:

inline fun <T> Array<out T>.single(
    predicate: (T) -> Boolean
): T 
inline fun ByteArray.single(
    predicate: (Byte) -> Boolean
): Byte 
inline fun ShortArray.single(
    predicate: (Short) -> Boolean
): Short 
inline fun IntArray.single(predicate: (Int) -> Boolean): Int (source)
inline fun LongArray.single(
    predicate: (Long) -> Boolean
): Long 
inline fun FloatArray.single(
    predicate: (Float) -> Boolean
): Float 
inline fun DoubleArray.single(
    predicate: (Double) -> Boolean
): Double
inline fun BooleanArray.single(
    predicate: (Boolean) -> Boolean
): Boolean 
inline fun CharArray.single(
    predicate: (Char) -> Boolean
): Char 
inline fun <T> Iterable<T>.single(
    predicate: (T) -> Boolean
): T

في حال استدعاء الدالة single()‎ عبر مجموعة دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك المجموعة. وفي حال كانت تلك المجموعة فارغة أو تحتوي أكثر من عنصر واحد فستطلق الدالة single()‎استثناءً:

fun <T> Iterable<T>.single(): T

في حال استدعاء الدالة single()‎ عبر  لائحة دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك اللائحة. وفي حال كانت تلك اللائحة فارغة أو تحتوي أكثر من عنصر واحد فستطلق الدالة single()‎استثناءً:

fun <T> List<T>.single(): T

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

العنصر الوحيد الموجود في المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها، وفي حال تمرير شرط منطقي predicate كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. أما في حال كانت تلك المصفوفة تحتوي أكثر من عنصر واحد (يحقق predicate في حال تمريرها) أو لا تحتوي أي واحد (يحقق predicate في حال تمريرها) فستطلق الدالة single()‎استثناءً.

أمثلة

استخدام الدالة ()single مع المصفوفات

تعرف الشيفرة الآتية  لائحة باسم array مكونة من عنصر واحد باستخدام الدالة ()arrayOf‎، ثم تستخدم الدالة  ()single  على arrayوتطبع الناتج:

fun main(args: Array<String>) {
var array = arrayOf(0)

print(array.single()) // 0
}

استخدام الدالة ()single مع المصفوفات

تعرف الشيفرة الآتية  لائحة باسم array مكونة من عنصرين باستخدام الدالة ()arrayOf‎، ثم تستخدم الدالة  ()single  على array،ولمّا كانت array تحتوي أكثر من عنصر واحد، فستطلق استثناءً:

fun main(args: Array<String>) {
var array = arrayOf(0, 6)

print(array.single()) // إطلاق استثناء
}

أنظر أيضًا

  • singleOrNull()‎: تعيد العنصر الوحيد الموجود في المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها، وفي حال تمرير شرط منطقي predicate كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. وفي حال كان الكائن الذي استُدعيت عبره يحتوي أكثر من عنصر واحد (يحقق predicate في حال تمريرها) أو لا يحتوي أي واحد (يحقق predicate في حال تمريرها) فستعيد الدالة  single()‎ القيمة null.

مصادر