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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>slice()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>slice()‎</code>العنصر الوحيد ا...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>slice()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>slice()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة<code>slice()‎</code>العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها، وفي حال تمرير شرط منطقي <code>predicate</code> كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. أمّا في حال كان الكائن الذي استُدعيت عبره يحتوي أكثر من عنصر واحد (يحقق <code>predicate</code>  في حال تمريرها) أو لا يحتوي أي واحد (يحقق <code>predicate</code>  في حال تمريرها) فستعيد القيمة المعدومة <code>null</code>.
+
تعيد الدالة<code>slice()‎</code>[[Kotlin/List|لائحة]] أو [[Kotlin/Array|مصفوفة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر <code>indices</code>.  
 +
 
 
==البنية العامة==
 
==البنية العامة==
في حال استدعاء الدالة <code>singleOrNull()‎</code> عبر <nowiki/>[[Kotlin/Array|مصفوفة]] دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك <nowiki/>[[Kotlin/Array|المصفوفة]]. وفي حال كانت تلك [[Kotlin/Array|المصفوفة]] فارغة أو تحتوي أكثر من عنصر واحد فستعيد القيمة المعدومة <code>null</code>:<syntaxhighlight lang="kotlin">
+
في حال تمرير كائن من النوع  <code>Collection</code> كوسيط إلى الدالة <code>slice()</code>، فستعيد [[Kotlin/Array|مصفوفة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر <code>indices</code>:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
fun <T> Array<out T>.singleOrNull(): T?
+
fun <T> Array<T>.sliceArray(
fun ByteArray.singleOrNull(): Byte?
+
     indices: Collection<Int>
fun ShortArray.singleOrNull(): Short?
+
): Array<T>
fun IntArray.singleOrNull(): Int?
+
fun ByteArray.sliceArray(indices: Collection<Int>): ByteArray
fun LongArray.singleOrNull(): Long?
+
fun ShortArray.sliceArray(
fun FloatArray.singleOrNull(): Float?
+
     indices: Collection<Int>
fun DoubleArray.singleOrNull(): Double?
+
): ShortArray
fun BooleanArray.singleOrNull(): Boolean?
+
fun IntArray.sliceArray(indices: Collection<Int>): IntArray
fun CharArray.singleOrNull(): Char?
+
fun LongArray.sliceArray(indices: Collection<Int>): LongArray
</syntaxhighlight>في حال استدعاء الدالة <code>singleOrNull()‎</code> عبر <nowiki/>[[Kotlin/Array|مصفوفة]] مع تمرير شرط منطقي <code>predicate</code> كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي في تلك <nowiki/>[[Kotlin/Array|المصفوفة]]. وفي حال كانت تلك [[Kotlin/Array|المصفوفة]] تحتوي أكثر من عنصر واحد يحقق ذلك الشرط المنطقي أو لا تحتوي أي واحد فستعيد القيمة المعدومة <code>null</code>:<syntaxhighlight lang="kotlin">
+
fun FloatArray.sliceArray(
inline fun <T> Array<out T>.singleOrNull(
+
     indices: Collection<Int>
     predicate: (T) -> Boolean
+
): FloatArray
): T?
+
fun DoubleArray.sliceArray(
inline fun ByteArray.singleOrNull(
+
     indices: Collection<Int>
    predicate: (Byte) -> Boolean
+
): DoubleArray
): Byte?
+
fun BooleanArray.sliceArray(
inline fun ShortArray.singleOrNull(
+
     indices: Collection<Int>
     predicate: (Short) -> Boolean
+
): BooleanArray
): Short?
+
fun CharArray.sliceArray(indices: Collection<Int>): CharArray
inline fun IntArray.singleOrNull(
 
    predicate: (Int) -> Boolean
 
): Int?
 
inline fun LongArray.singleOrNull(
 
    predicate: (Long) -> Boolean
 
): Long?
 
inline fun FloatArray.singleOrNull(
 
     predicate: (Float) -> Boolean
 
): Float?
 
inline fun DoubleArray.singleOrNull(
 
     predicate: (Double) -> Boolean
 
): Double?
 
inline fun BooleanArray.singleOrNull(
 
     predicate: (Boolean) -> Boolean
 
): Boolean?
 
inline fun CharArray.singleOrNull(
 
    predicate: (Char) -> Boolean
 
): Char?
 
inline fun <T> Iterable<T>.singleOrNull(
 
    predicate: (T) -> Boolean
 
): T?
 
 
 
</syntaxhighlight>في حال استدعاء الدالة <code>singleOrNull()‎</code> عبر <nowiki/>[[Kotlin/collections|مجموعة]] دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك <nowiki/>[[Kotlin/collections|المجموعة]]. وفي حال كانت تلك [[Kotlin/collections|المجموعة]] فارغة أو تحتوي أكثر من عنصر واحد فستعيد القيمة المعدومة <code>null</code>:<syntaxhighlight lang="kotlin">
 
fun <T> Iterable<T>.singleOrNull(): T?
 
 
 
</syntaxhighlight>في حال استدعاء الدالة <code>singleOrNull()‎</code> عبر  [[Kotlin/List|لائحة]] دون تمرير أي معامل (parameter) فستعيد العنصر الوحيد الموجود في تلك <nowiki/>[[Kotlin/List|اللائحة]]. وفي حال كانت تلك [[Kotlin/List|اللائحة]] فارغة أو تحتوي أكثر من عنصر واحد فستعيد القيمة المعدومة <code>null</code>:<syntaxhighlight lang="kotlin">
 
fun <T> List<T>.singleOrNull(): T?
 
  
 +
</syntaxhighlight>في حال تمرير [[Kotlin/ranges|مجال]] <code>indices</code> كوسيط إلى الدالة <code>slice()‎</code>، فستعيد  [[Kotlin/List|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر <code>indices</code>:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
 +
fun <T> Array<out T>.slice(indices: Iterable<Int>): List<T> (source)
 +
fun ByteArray.slice(indices: Iterable<Int>): List<Byte> (source)
 +
fun ShortArray.slice(indices: Iterable<Int>): List<Short> (source)
 +
fun IntArray.slice(indices: Iterable<Int>): List<Int> (source)
 +
fun LongArray.slice(indices: Iterable<Int>): List<Long> (source)
 +
fun FloatArray.slice(indices: Iterable<Int>): List<Float> (source)
 +
fun DoubleArray.slice(indices: Iterable<Int>): List<Double> (source)
 +
fun BooleanArray.slice(indices: Iterable<Int>): List<Boolean> (source)
 +
fun CharArray.slice(indices: Iterable<Int>): List<Char> (source)
 +
fun <T> List<T>.slice(indices: Iterable<Int>): List<T>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==القيم المٌعادة==
 
==القيم المٌعادة==
العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها، وفي حال تمرير شرط منطقي <code>predicate</code> كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. أما في حال كانت تلك [[Kotlin/Array|المصفوفة]] تحتوي أكثر من عنصر واحد (يحقق <code>predicate</code> في حال تمريرها) أو لا تحتوي أي واحد (يحقق <code>predicate</code>  في حال تمريرها) فستعيد القيمة المعدومة <code>null</code>:
+
تعيد الدالة<code>sliceArray()‎</code>[[Kotlin/List|لائحة]] أو [[Kotlin/Array|مصفوفة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر <code>indices</code>.
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()slice</code> مع المصفوفات===
 
===استخدام الدالة <code>()slice</code> مع المصفوفات===
تعرف الشيفرة الآتية  لائحة باسم <code>array</code> مكونة من عنصر واحد باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة  <code>()slice</code>  على <code>array</code>وتطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]]<nowiki/>باسم <code>array</code> مكونة من ستة عناصر باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة<code>()slice</code>  على <code>array</code> مع تمرير [[Kotlin/ranges|مجال]]، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
+
import java.util.Arrays
var array = arrayOf(0)
 
  
print(array.singleOrNull()) // 0
 
}
 
</syntaxhighlight>
 
===استخدام الدالة <code>()singleOrNull</code> مع المصفوفات: الحالة الثانية===
 
تعرف الشيفرة الآتية  لائحة باسم <code>array</code> مكونة من عنصرين باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة  <code>()singleOrNull</code>  على <code>array</code>،ولمّا كانت <code>array</code> تحتوي أكثر من عنصر واحد، فستعيد القيمة المعدومة <code>null</code>:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
var array = arrayOf(0, 6)
+
val array = arrayOf(1, 2, 3, 4, 5, 6)
 
+
   
print(array.single()) // null
+
print (Arrays.toString(array.sliceArray(1..3))) // [2, 3, 4]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
==أنظر أيضًا==
+
===أنظر أيضًا===
*<code>[[Kotlin/collections/single|single()]]</code>‎: تعيد العنصر الوحيد الموجود في <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو <nowiki/>[[Kotlin/List|اللائحة]] التي استُدعيت عبرها، وفي حال تمرير شرط منطقي <code>predicate</code>كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. أمّا في حال كانت الكائن الذي استُدعيت عبره يحتوي أكثر من عنصر واحد (يحقق <code>predicate</code> في حال تمريرها) أو لا يحتوي أي واحد (يحقق <code>predicate</code> في حال تمريرها) فستطلق الدالة  <code>single()‎</code>[[Kotlin/exceptions|استثناءً]].
+
*<code>[[Kotlin/collections/slice|slice()]]</code>‎:تعيد العنصر الوحيد الموجود في [[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها، وفي حال تمرير شرط منطقي <code>predicate</code> كمعامل (parameter) فستعيد العنصر الوحيد الذي يحقق ذلك الشرط المنطقي. أمّا في حال كان الكائن الذي استُدعيت عبره يحتوي أكثر من عنصر واحد (يحقق <code>predicate</code> في حال تمريرها) أو لا يحتوي أي واحد (يحقق <code>predicate</code> في حال تمريرها) فستعيد القيمة المعدومة <code>null</code>.
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/single-or-null.html الدالة  slice()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/slice.html الدالة  slice()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 12:37، 4 يونيو 2018

تعيد الدالةslice()‎لائحة أو مصفوفة تحتوي عناصر المصفوفة التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر indices.

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

في حال تمرير كائن من النوع Collection كوسيط إلى الدالة slice()‎، فستعيد مصفوفة تحتوي عناصر المصفوفة التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر indices:

fun <T> Array<T>.sliceArray(
    indices: Collection<Int>
): Array<T> 
fun ByteArray.sliceArray(indices: Collection<Int>): ByteArray 
fun ShortArray.sliceArray(
    indices: Collection<Int>
): ShortArray 
fun IntArray.sliceArray(indices: Collection<Int>): IntArray 
fun LongArray.sliceArray(indices: Collection<Int>): LongArray 
fun FloatArray.sliceArray(
    indices: Collection<Int>
): FloatArray 
fun DoubleArray.sliceArray(
    indices: Collection<Int>
): DoubleArray 
fun BooleanArray.sliceArray(
    indices: Collection<Int>
): BooleanArray 
fun CharArray.sliceArray(indices: Collection<Int>): CharArray

في حال تمرير مجال indices كوسيط إلى الدالة slice()‎، فستعيد لائحة تحتوي عناصر المصفوفة التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر indices:

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

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

تعيد الدالةsliceArray()‎لائحة أو مصفوفة تحتوي عناصر المصفوفة التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر indices.

أمثلة

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

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

import java.util.Arrays

fun main(args: Array<String>) {
val array = arrayOf(1, 2, 3, 4, 5, 6)
    
print (Arrays.toString(array.sliceArray(1..3))) // [2, 3, 4]
}

أنظر أيضًا

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

مصادر