الفرق بين المراجعتين لصفحة: «Kotlin/collections/single»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 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> | </syntaxhighlight> | ||
==القيم | ==القيم المعادة== | ||
العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List| | يعاد العنصر الوحيد الموجود في [[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/lastIndex|lastIndex]]</code>: تجلب الفهرس الأخير لمصفوفة أو قائمة. | |||
* الدالة <code>[[Kotlin/collections/find|find()]]</code>: تبحث على عنصر محدَّد ضمن عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها ثمَّ تعيد أول ظهور له. | |||
==مصادر== | ==مصادر== | ||
*[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 Functions]] | [[تصنيف:Kotlin Functions]] |
مراجعة 16:57، 7 أغسطس 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
(إن أعطي)، أو يُطلق استثناءٌ خلاف ذلك.
أمثلة
استعمال الدالة ()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
خلاف ذلك. - الخاصية
lastIndex
: تجلب الفهرس الأخير لمصفوفة أو قائمة. - الدالة
find()
: تبحث على عنصر محدَّد ضمن عناصر المصفوفة أو المجموعة التي استُدعيت معها ثمَّ تعيد أول ظهور له.