الفرق بين المراجعتين لصفحة: «Kotlin/collections/single»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(4 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>single()</code> في | <noinclude>{{DISPLAYTITLE: الدالة <code>single()</code> في Kotlin}}</noinclude> | ||
تتحقَّق الدالة <code>single()</code> من حواية [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|القائمة]] التي استُدعيت معها عنصرًا واحدًا فقط أو عنصرًا واحدًا محققًا لشرط معيَّن ثمَّ تعيده أو تطلق [[Kotlin/exceptions|استثناءً]] خلاف ذلك. | |||
==البنية العامة== | ==البنية العامة== | ||
إن استدعيت الدالة <code>single()</code> مع <nowiki/>[[Kotlin/Array|مصفوفة]] أو [[Kotlin/collections|مجموعة]] أو قائمة دون تمرير أي معامل، فستتحقَّق من احتواء تلك <nowiki/>[[Kotlin/Array|المصفوفة]] أو المجموعة أو القائمة على عنصر واحد فقط ثمَّ تعيده. وفي حال كانت تلك [[Kotlin/Array|المصفوفة]] أو المجموعة أو القائمة فارغةً أو تحوي أكثر من عنصر واحد، فستطلق الدالة <code>single()</code> [[Kotlin/exceptions|استثناءً]]:<syntaxhighlight lang="kotlin"> | |||
fun <T> Array<out T>.single(): T | fun <T> Array<out T>.single(): T | ||
fun ByteArray.single(): Byte | fun ByteArray.single(): Byte | ||
سطر 12: | سطر 12: | ||
fun BooleanArray.single(): Boolean | fun BooleanArray.single(): Boolean | ||
fun CharArray.single(): Char | fun CharArray.single(): Char | ||
</syntaxhighlight> | </syntaxhighlight>وإن استدعيت مع <nowiki/>[[Kotlin/Array|مصفوفة]] ومرِّر إليها الشرط <code>predicate</code> كمعامل، فستتحقَّق من تطابق عنصر واحد فقط من عناصر تلك المصفوفة مع ذلك الشرط<nowiki/>. وفي حال تطابق أكثر من عنصر مع ذلك الشرط المنطقي أو لم يكن هنالك أي عنصر في المصفوفة، فستطلق الدالة <code>single()</code> [[Kotlin/exceptions|استثناءً]]:<syntaxhighlight lang="kotlin"> | ||
inline fun <T> Array<out T>.single( | inline fun <T> Array<out T>.single( | ||
predicate: (T) -> Boolean | predicate: (T) -> Boolean | ||
سطر 42: | سطر 42: | ||
): T | ): T | ||
fun <T> Iterable<T>.single(): T | fun <T> Iterable<T>.single(): T | ||
fun <T> List<T>.single(): T | fun <T> List<T>.single(): T | ||
</syntaxhighlight> | |||
</ | == المعاملات == | ||
==القيم | |||
العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List| | === <code>predicate</code> === | ||
دالة تطبق على كل عنصر من عناصر المصفوفة أو المجموعة أو القائمة المعطاة، إذ يمرر إليها العنصر ثم تعيد القيمة المنطقية المقابلة له. | |||
==القيم المعادة== | |||
يعاد العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|القائمة]] المعطاة، أو العنصر الوحيد الذي حقق الشرط <code>predicate</code> (إن أعطي)، أو يُطلق [[Kotlin/exceptions|استثناءٌ]] خلاف ذلك. | |||
==أمثلة== | ==أمثلة== | ||
استعمال الدالة <code>()single</code> للتأكد من احتواء مصفوفة على عنصر وحيد وجلبه:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
var array = arrayOf(0) | var array = arrayOf(0) | ||
print(array.single()) // 0 | print(array.single()) // 0 | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
استعمال الدالة <code>()single</code> للتأكد من احتواء مصفوفة على عنصر وحيد وجلبه إن كان كذلك محقَّقًا:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
var array = arrayOf(0, 6) | var array = arrayOf(0, 6) | ||
print(array.single()) | print(array.single()) | ||
} | } | ||
</syntaxhighlight>نتيجة تنفيذ المثال السابق هي:<syntaxhighlight lang="text"> | |||
Exception in thread "main" java.lang.IllegalArgumentException: Array has more than one element. | |||
at kotlin.collections.ArraysKt___ArraysKt.single(_Arrays.kt:2059) | |||
at TestKt.main(test.kt:4) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | |||
*<code>[[Kotlin/collections/singleOrNull|singleOrNull()]]</code>: | ==انظر أيضًا== | ||
*الدالة <code>[[Kotlin/collections/singleOrNull|singleOrNull()]]</code>: تتحقَّق من حواية [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|القائمة]] التي استُدعيت معها عنصرًا واحدًا فقط، أو عنصرًا واحدًا محققًا لشرط معيَّن ثمَّ تعيده، أو تعيد القيمة <code>null</code> خلاف ذلك. | |||
* الدالة <code>[[Kotlin/collections/find|find()]]</code>: تبحث على عنصر محدَّد ضمن عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها ثمَّ تعيد أول ظهور له. | |||
* الخاصية <code>[[Kotlin/collections/lastIndex|lastIndex]]</code>: تجلب الفهرس الأخير لمصفوفة أو قائمة. | |||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/single.html الدالة | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/single.html صفحة الدالة single() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Collection]] |
المراجعة الحالية بتاريخ 10:13، 8 سبتمبر 2018
تتحقَّق الدالة single()
من حواية المصفوفة أو المجموعة أو القائمة التي استُدعيت معها عنصرًا واحدًا فقط أو عنصرًا واحدًا محققًا لشرط معيَّن ثمَّ تعيده أو تطلق استثناءً خلاف ذلك.
البنية العامة
إن استدعيت الدالة single()
مع مصفوفة أو مجموعة أو قائمة دون تمرير أي معامل، فستتحقَّق من احتواء تلك المصفوفة أو المجموعة أو القائمة على عنصر واحد فقط ثمَّ تعيده. وفي حال كانت تلك المصفوفة أو المجموعة أو القائمة فارغةً أو تحوي أكثر من عنصر واحد، فستطلق الدالة 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
وإن استدعيت مع مصفوفة ومرِّر إليها الشرط predicate
كمعامل، فستتحقَّق من تطابق عنصر واحد فقط من عناصر تلك المصفوفة مع ذلك الشرط. وفي حال تطابق أكثر من عنصر مع ذلك الشرط المنطقي أو لم يكن هنالك أي عنصر في المصفوفة، فستطلق الدالة 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
fun <T> Iterable<T>.single(): T
fun <T> List<T>.single(): T
المعاملات
predicate
دالة تطبق على كل عنصر من عناصر المصفوفة أو المجموعة أو القائمة المعطاة، إذ يمرر إليها العنصر ثم تعيد القيمة المنطقية المقابلة له.
القيم المعادة
يعاد العنصر الوحيد الموجود في المصفوفة أو المجموعة أو القائمة المعطاة، أو العنصر الوحيد الذي حقق الشرط predicate
(إن أعطي)، أو يُطلق استثناءٌ خلاف ذلك.
أمثلة
استعمال الدالة ()single
للتأكد من احتواء مصفوفة على عنصر وحيد وجلبه:
fun main(args: Array<String>) {
var array = arrayOf(0)
print(array.single()) // 0
}
استعمال الدالة ()single
للتأكد من احتواء مصفوفة على عنصر وحيد وجلبه إن كان كذلك محقَّقًا:
fun main(args: Array<String>) {
var array = arrayOf(0, 6)
print(array.single())
}
نتيجة تنفيذ المثال السابق هي:
Exception in thread "main" java.lang.IllegalArgumentException: Array has more than one element.
at kotlin.collections.ArraysKt___ArraysKt.single(_Arrays.kt:2059)
at TestKt.main(test.kt:4)
انظر أيضًا
- الدالة
singleOrNull()
: تتحقَّق من حواية المصفوفة أو المجموعة أو القائمة التي استُدعيت معها عنصرًا واحدًا فقط، أو عنصرًا واحدًا محققًا لشرط معيَّن ثمَّ تعيده، أو تعيد القيمةnull
خلاف ذلك. - الدالة
find()
: تبحث على عنصر محدَّد ضمن عناصر المصفوفة أو المجموعة التي استُدعيت معها ثمَّ تعيد أول ظهور له. - الخاصية
lastIndex
: تجلب الفهرس الأخير لمصفوفة أو قائمة.