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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>zip()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>zip()‎</code> زوجًا مك...')
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>zip()‎</code> في لغة Kotlin}}</noinclude>
+
تعيد الدالة<code>zip()‎</code> [[Kotlin/Pair|زوجًا]] مكونًا من [[Kotlin/List|لائحتين]]، حيث [[Kotlin/List|اللائحة]] الأولي مكونة من العناصر الأولى  من كل زوج من  [[Kotlin/Array|المصفوفة]]  أو  [[Kotlin/Iterable|المجموعة التكرارية]]  التي استُدعيت عبرها،  و<nowiki/>[[Kotlin/List|اللائحة]] الثانية مكونة من العناصر الثانية من كل زوج من  [[Kotlin/Array|المصفوفة]]  أو  [[Kotlin/Iterable|المجموعة التكرارية]]  التي استُدعيت عبرها.
تعيد الدالة<code>zip()‎</code> [[Kotlin/Pair|زوجًا]] مكونًا من [[Kotlin/List|لائحتين]]، حيث [[Kotlin/List|اللائحة]] الأولي مكونة من العناصر الأولى  من كل زوج من  [[Kotlin/Array|المصفوفة]]  أو  [[Kotlin/Iterable|المجموعة التكرارية]]  التي استُدعيت عبرها،  و<nowiki/>[[Kotlin/List|اللائحة]] الثانية مكونة من العناصر الثانية من كل زوج من  [[Kotlin/Array|المصفوفة]]  أو  [[Kotlin/Iterable|المجموعة التكرارية]]  التي استُدعيت عبرها<nowiki/>.
 
 
==البنية العامة==
 
==البنية العامة==
يمكن استدعاء الدالة<code>zip()</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
+
<syntaxhighlight lang="kotlin">
fun <T, R> Array<out Pair<T, R>>.unzip(): Pair<List<T>, List<R>>  
+
infix fun <T, R> Array<out T>.zip(
 +
    other: Array<out R>
 +
): List<Pair<T, R>>
 +
infix fun <R> ByteArray.zip(
 +
    other: Array<out R>
 +
): List<Pair<Byte, R>>
 +
infix fun <R> ShortArray.zip(
 +
    other: Array<out R>
 +
): List<Pair<Short, R>>  
 +
infix fun <R> IntArray.zip(
 +
    other: Array<out R>
 +
): List<Pair<Int, R>>
 +
infix fun <R> LongArray.zip(
 +
    other: Array<out R>
 +
): List<Pair<Long, R>>  
 +
infix fun <R> FloatArray.zip(
 +
    other: Array<out R>
 +
): List<Pair<Float, R>>
 +
infix fun <R> DoubleArray.zip(
 +
    other: Array<out R>
 +
): List<Pair<Double, R>>
 +
infix fun <R> BooleanArray.zip(
 +
    other: Array<out R>
 +
): List<Pair<Boolean, R>>
 +
infix fun <R> CharArray.zip(
 +
    other: Array<out R>
 +
): List<Pair<Char, R>>
 +
infix fun ByteArray.zip(
 +
    other: ByteArray
 +
): List<Pair<Byte, Byte>>
 +
infix fun ShortArray.zip(
 +
    other: ShortArray
 +
): List<Pair<Short, Short>>
 +
infix fun IntArray.zip(other: IntArray): List<Pair<Int, Int>>
 +
infix fun LongArray.zip(
 +
    other: LongArray
 +
): List<Pair<Long, Long>>
 +
infix fun FloatArray.zip(
 +
    other: FloatArray
 +
): List<Pair<Float, Float>>
 +
infix fun DoubleArray.zip(
 +
    other: DoubleArray
 +
): List<Pair<Double, Double>>
 +
infix fun BooleanArray.zip(
 +
    other: BooleanArray
 +
): List<Pair<Boolean, Boolean>>
 +
infix fun CharArray.zip(
 +
    other: CharArray
 +
): List<Pair<Char, Char>>
  
</syntaxhighlight>يمكن استدعاء الدالة<code>zip()‎</code>  عبر  [[Kotlin/Iterable|المجموعات التكرارية]]:<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>في حال استدعاء الدالة<code>zip()‎</code>  عبر [[Kotlin/Array|مصفوفة]] مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط فستعيد [[Kotlin/List|لائحة]] تتضمّن أزواج مكونة من عناصر [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها وعناصر [[Kotlin/Array|المصفوفة]] المُمرّرة بنفس الفهرس، طول [[Kotlin/List|اللائحة]] المعادة يساوي طول أٌقصرهما.<syntaxhighlight lang="kotlin">
fun <T, R> Iterable<Pair<T, R>>.unzip(): Pair<List<T>, List<R>>  
+
infix fun <T, R> Array<out T>.zip(
 +
    other: Iterable<R>
 +
): List<Pair<T, R>>
 +
infix fun <R> ByteArray.zip(
 +
    other: Iterable<R>
 +
): List<Pair<Byte, R>>
 +
infix fun <R> ShortArray.zip(
 +
    other: Iterable<R>
 +
): List<Pair<Short, R>>
 +
infix fun <R> IntArray.zip(
 +
    other: Iterable<R>
 +
): List<Pair<Int, R>>
 +
infix fun <R> LongArray.zip(
 +
    other: Iterable<R>
 +
): List<Pair<Long, R>>
 +
infix fun <R> FloatArray.zip(
 +
    other: Iterable<R>
 +
): List<Pair<Float, R>>
 +
infix fun <R> DoubleArray.zip(
 +
    other: Iterable<R>
 +
): List<Pair<Double, R>>
 +
infix fun <R> BooleanArray.zip(
 +
    other: Iterable<R>
 +
): List<Pair<Boolean, R>>
 +
infix fun <R> CharArray.zip(
 +
    other: Iterable<R>
 +
): List<Pair<Char, R>>
 +
 
 +
</syntaxhighlight>في حال استدعاء الدالة<code>zip()‎</code>  عبر [[Kotlin/Array|مصفوفة]]  مع تمرير [[Kotlin/Iterable|مجموعة تكرارية]] كوسيط فستعيد [[Kotlin/List|لائحة]] تتضمّن أزواج مكونة من عناصر  [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها وعناصر [[Kotlin/Iterable|المجموعة التكرارية]]  المُمرّرة بنفس الفهرس، طول [[Kotlin/List|اللائحة]] المعادة يساوي طول أٌقصرهما.<syntaxhighlight lang="kotlin">
 +
infix fun <T, R> Iterable<T>.zip(
 +
    other: Array<out R>
 +
): List<Pair<T, R>>
 +
</syntaxhighlight>في حال استدعاء الدالة<code>zip()‎</code>  عبر [[Kotlin/Iterable|مجموعة تكرارية]]  مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط فستعيد [[Kotlin/List|لائحة]] تتضمّن أزواج مكونة من عناصر  [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها وعناصر [[Kotlin/Iterable|المجموعة التكرارية]]  المُمرّرة بنفس الفهرس، طول [[Kotlin/List|اللائحة]] المعادة يساوي طول أٌقصرهما.<syntaxhighlight lang="kotlin">
 +
infix fun <T, R> Iterable<T>.zip(
 +
    other: Iterable<R>
 +
): List<Pair<T, R>>  
 +
</syntaxhighlight>في حال استدعاء الدالة<code>zip()‎</code>  عبر [[Kotlin/Iterable|مجموعة تكرارية]]  مع تمرير [[Kotlin/Iterable|مجموعة تكرارية]] كوسيط فستعيد [[Kotlin/List|لائحة]] تتضمّن أزواج مكونة من عناصر  [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت عبرها وعناصر [[Kotlin/Iterable|المجموعة التكرارية]]  المُمرّرة بنفس الفهرس، طول [[Kotlin/List|اللائحة]] المعادة يساوي طول أٌقصرهما.
  
</syntaxhighlight>
 
 
==القيمة المُعادة==
 
==القيمة المُعادة==
 
[[Kotlin/Pair|زوج]] مكون من [[Kotlin/List|لائحتين]]، حيث [[Kotlin/List|اللائحة]] الأولي مكونة من العناصر الأولى من كل زوج من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]]  التي استُدعيت عبرها،  و<nowiki/>[[Kotlin/List|اللائحة]] الثانية مكونة من العناصر الثانية من كل زوج من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت عبرها.
 
[[Kotlin/Pair|زوج]] مكون من [[Kotlin/List|لائحتين]]، حيث [[Kotlin/List|اللائحة]] الأولي مكونة من العناصر الأولى من كل زوج من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]]  التي استُدعيت عبرها،  و<nowiki/>[[Kotlin/List|اللائحة]] الثانية مكونة من العناصر الثانية من كل زوج من  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت عبرها.
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()zip</code> مع المصفوفات===
 
===استخدام الدالة <code>()zip</code> مع المصفوفات===
تعرّف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>  مكونة من ثلاثة [[Kotlin/Pair|أزواج]] باستخدام الدالة <code>()arrayOf‎</code>،<nowiki/> ثم تستخدم الدالة<code>()zip</code> على <code>array</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرّف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>  مكونة من ثلاثة [[Kotlin/Pair|أزواج]] باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة<code>()zip</code> على <code>array</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
val array = arrayOf(1 to 'a', 2 to 'b', 3 to 'c')
 
val array = arrayOf(1 to 'a', 2 to 'b', 3 to 'c')
سطر 26: سطر 108:
 
*<code>[[Kotlin/collections/toDoubleArray|toDoubleArray()]]</code>‎ : تعيد [[Kotlin/Array|مصفوفة]] من  النوع <code>DoubleArray</code>تضم جميع عناصر [[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Double>‎</code>) أو  [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها.
 
*<code>[[Kotlin/collections/toDoubleArray|toDoubleArray()]]</code>‎ : تعيد [[Kotlin/Array|مصفوفة]] من  النوع <code>DoubleArray</code>تضم جميع عناصر [[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Double>‎</code>) أو  [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها.
 
==مصادر==
 
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/unzip.html الدالة  zip()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
<span> </span>
 +
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/unzip.html الدالة  zip()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 13:35، 24 يونيو 2018

تعيد الدالةzip()‎ زوجًا مكونًا من لائحتين، حيث اللائحة الأولي مكونة من العناصر الأولى من كل زوج من المصفوفة أو المجموعة التكرارية  التي استُدعيت عبرها، واللائحة الثانية مكونة من العناصر الثانية من كل زوج من المصفوفة أو المجموعة التكرارية  التي استُدعيت عبرها.

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

infix fun <T, R> Array<out T>.zip(
    other: Array<out R>
): List<Pair<T, R>> 
infix fun <R> ByteArray.zip(
    other: Array<out R>
): List<Pair<Byte, R>> 
infix fun <R> ShortArray.zip(
    other: Array<out R>
): List<Pair<Short, R>> 
infix fun <R> IntArray.zip(
    other: Array<out R>
): List<Pair<Int, R>> 
infix fun <R> LongArray.zip(
    other: Array<out R>
): List<Pair<Long, R>> 
infix fun <R> FloatArray.zip(
    other: Array<out R>
): List<Pair<Float, R>> 
infix fun <R> DoubleArray.zip(
    other: Array<out R>
): List<Pair<Double, R>> 
infix fun <R> BooleanArray.zip(
    other: Array<out R>
): List<Pair<Boolean, R>> 
infix fun <R> CharArray.zip(
    other: Array<out R>
): List<Pair<Char, R>> 
infix fun ByteArray.zip(
    other: ByteArray
): List<Pair<Byte, Byte>> 
infix fun ShortArray.zip(
    other: ShortArray
): List<Pair<Short, Short>> 
infix fun IntArray.zip(other: IntArray): List<Pair<Int, Int>> 
infix fun LongArray.zip(
    other: LongArray
): List<Pair<Long, Long>> 
infix fun FloatArray.zip(
    other: FloatArray
): List<Pair<Float, Float>> 
infix fun DoubleArray.zip(
    other: DoubleArray
): List<Pair<Double, Double>> 
infix fun BooleanArray.zip(
    other: BooleanArray
): List<Pair<Boolean, Boolean>> 
infix fun CharArray.zip(
    other: CharArray
): List<Pair<Char, Char>>

في حال استدعاء الدالةzip()‎ عبر مصفوفة مع تمرير مصفوفة كوسيط فستعيد لائحة تتضمّن أزواج مكونة من عناصر المصفوفة التي استُدعيت عبرها وعناصر المصفوفة المُمرّرة بنفس الفهرس، طول اللائحة المعادة يساوي طول أٌقصرهما.

infix fun <T, R> Array<out T>.zip(
    other: Iterable<R>
): List<Pair<T, R>>
infix fun <R> ByteArray.zip(
    other: Iterable<R>
): List<Pair<Byte, R>> 
infix fun <R> ShortArray.zip(
    other: Iterable<R>
): List<Pair<Short, R>> 
infix fun <R> IntArray.zip(
    other: Iterable<R>
): List<Pair<Int, R>> 
infix fun <R> LongArray.zip(
    other: Iterable<R>
): List<Pair<Long, R>> 
infix fun <R> FloatArray.zip(
    other: Iterable<R>
): List<Pair<Float, R>> 
infix fun <R> DoubleArray.zip(
    other: Iterable<R>
): List<Pair<Double, R>> 
infix fun <R> BooleanArray.zip(
    other: Iterable<R>
): List<Pair<Boolean, R>>
infix fun <R> CharArray.zip(
    other: Iterable<R>
): List<Pair<Char, R>>

في حال استدعاء الدالةzip()‎ عبر مصفوفة مع تمرير مجموعة تكرارية كوسيط فستعيد لائحة تتضمّن أزواج مكونة من عناصر المصفوفة التي استُدعيت عبرها وعناصر المجموعة التكرارية المُمرّرة بنفس الفهرس، طول اللائحة المعادة يساوي طول أٌقصرهما.

infix fun <T, R> Iterable<T>.zip(
    other: Array<out R>
): List<Pair<T, R>>

في حال استدعاء الدالةzip()‎ عبر مجموعة تكرارية مع تمرير مصفوفة كوسيط فستعيد لائحة تتضمّن أزواج مكونة من عناصر المصفوفة التي استُدعيت عبرها وعناصر المجموعة التكرارية المُمرّرة بنفس الفهرس، طول اللائحة المعادة يساوي طول أٌقصرهما.

infix fun <T, R> Iterable<T>.zip(
    other: Iterable<R>
): List<Pair<T, R>>

في حال استدعاء الدالةzip()‎ عبر مجموعة تكرارية مع تمرير مجموعة تكرارية كوسيط فستعيد لائحة تتضمّن أزواج مكونة من عناصر المجموعة التكرارية التي استُدعيت عبرها وعناصر المجموعة التكرارية المُمرّرة بنفس الفهرس، طول اللائحة المعادة يساوي طول أٌقصرهما.

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

زوج مكون من لائحتين، حيث اللائحة الأولي مكونة من العناصر الأولى من كل زوج من المصفوفة أو المجموعة التكرارية  التي استُدعيت عبرها، واللائحة الثانية مكونة من العناصر الثانية من كل زوج من المصفوفة أو المجموعة التكرارية التي استُدعيت عبرها.

أمثلة

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

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

fun main(args: Array<String>) {
val array = arrayOf(1 to 'a', 2 to 'b', 3 to 'c')
    
println(array.unzip()) // ([1, 2, 3], [a, b, c])
  
}

أنظر أيضًا

مصادر