الفرق بين المراجعتين لصفحة: «Kotlin/collections/intersect»

من موسوعة حسوب
لا ملخص تعديل
ط مراجعة وتدقيق.
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة intersect()‎ في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة intersect()‎ في Kotlin}}</noinclude>
تعيد الدالة <code>intersect()‎</code>[[Kotlin/Set|مجموعة]] تحتوي كل العناصر المشتركة بين [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها وتلك الممرّرة إلى الدالة.
تبحث الدالة <code>intersect()‎</code> عن العناصر المشتركة بين مصفوفتين أو مجموعتين ثمَّ تعيدها في مجموعة.


المجموعة المُعادة تحافظ على ترتيب تكرار [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.
تحافظ المجموعة المُعادة على ترتيب تكرار [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] الأصلية.
== البنية العامة ==
== البنية العامة ==
يمكن استدعاء الدالة <code>intersect()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
يمكن استدعاء الدالة <code>intersect()‎</code> مع [[Kotlin/Array|المصفوفات]] و<nowiki/>[[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
infix fun <T> Array<out T>.intersect(
infix fun <T> Array<out T>.intersect(
     other: Iterable<T>
     other: Iterable<T>
سطر 31: سطر 31:
): Set<Char>  
): Set<Char>  


</syntaxhighlight>يمكن استدعاء  الدالة <code>intersect()‎</code> عبر [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
infix fun <T> Iterable<T>.intersect(
infix fun <T> Iterable<T>.intersect(
     other: Iterable<T>
     other: Iterable<T>
): Set<T>
): Set<T>
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>infix</code> للدلالة على أن هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل <code>.</code>والأقواس <code>()</code> المُستخدَمَين في الاستدعاء عادةً، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/functions#.D8.A7.D9.84.D8.AA.D8.AF.D9.88.D9.8A.D9.86 .D8.A7.D9.84.D8.AF.D8.A7.D8.AE.D9.84.D9.8A.D9.91 .28Infix notation.29|توثيق التدوين الداخلي للدوال (infix functions)]].
</syntaxhighlight>وجود الكلمة المفتاحية <code>infix</code> يدل على أنَّ هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل <code>.</code> والأقواس <code>()</code> المُستخدَمَين في الاستدعاء عادةً (راجع للمزيد من التفاصيل <nowiki/>توثيق [[Kotlin/functions#.D8.A7.D9.84.D8.AA.D8.AF.D9.88.D9.8A.D9.86 .D8.A7.D9.84.D8.AF.D8.A7.D8.AE.D9.84.D9.8A.D9.91 .28Infix notation.29|التدوين الداخلي للدوال (infix functions)]]).
== القيم المعادة ==
== القيم المعادة ==
مجموعة تحتوي كل العناصر المشتركة بين [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها وتلك الممرّرة إلى الدالة.
تُعاد مجموعة تحوي جميع العناصر المشتركة بين المصفوفتين أو المجموعتين المُعطَيتين.
== أمثلة ==
== أمثلة ==


=== استخدام الدالة<code>intersect()‎</code> على اللوائح: الحالة الأولى ===
=== استخدام الدالة <code>intersect()‎</code> مع القوائم: وجود عناصر مشتركة ===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحتين]] <nowiki/>باسم <code>iterable</code> و <code>other</code> مكونة من أعداد باستخدام الدالة <code>()listOf</code>، ثم تستخدم الدالة  <code>()intersect</code>  للحصول على [[Kotlin/Set|مجموعة]] تضم العناصر المشتركة بين [[Kotlin/List|اللائحتين]]، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>قائمتين <nowiki/>باسم <code>iterable</code> و <code>other</code> باستخدام الدالة <code>()listOf</code> ثمَّ تستخدم الدالة <code>()intersect</code> لجلب جميع العناصر المشتركة بين هاتين القائمتين:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
     val iterable = listOf(1, 2, 3, 4, 5)
     val iterable = listOf(1, 2, 3, 4, 5)
سطر 52: سطر 51:
</syntaxhighlight>
</syntaxhighlight>


=== استخدام الدالة<code>intersect()‎</code> على اللوائح: الحالة الثانية ===
=== استخدام الدالة <code>intersect()‎</code> مع القوائم: عدم وجود عناصر مشتركة ===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحتين]] باسم <code>iterable</code> و <code>other</code> مكونة من أعداد باستخدام الدالة <code>()listOf</code>، ثم تستخدم الدالة  <code>()intersect</code>  للحصول على [[Kotlin/Set|مجموعة]] تضم العناصر المشتركة بين [[Kotlin/List|اللائحتين]]، ولمّا لم تكن بينهما عناصر مشتركة، فستعيد مجموعة فارغة:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>قائمتين باسم <code>iterable</code> و <code>other</code> باستخدام الدالة <code>()listOf</code> ثمَّ تستخدم الدالة <code>()intersect</code> لجلب جميع العناصر المشتركة بين هاتين المجموعيتن:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val iterable = listOf(1, 2, 3, 4, 5)
val iterable = listOf(1, 2, 3, 4, 5)
سطر 64: سطر 63:
</syntaxhighlight>
</syntaxhighlight>
== انظر أيضًا ==
== انظر أيضًا ==
* <code>[[Kotlin/collections/indexOf|indexOf]]()‎</code>: تعيد فهرس أول ظهور للعنصر المُمرّر إليها في <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو <nowiki/>[[Kotlin/List|اللائحة]] التي استُدعيت عبرها ، أو ‎<code>-1‎</code> إن كان العنصر المُمرّر غير موجود.


* <code>[[Kotlin/collections/indexOfFirst|indexOfFirst]]()‎</code>: تعيد فهرس أول ظهور للعنصر المُمرّر إليها في <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو اللائحة التي استُدعيت عبرها والذي يحقق الشرط المنطقي المُمرّر، أو ‎<code>-1‎</code> إن كان العنصر المُمرّر غير موجود.
* الدالة <code>[[Kotlin/collections/count|count()‎]]</code>: تعيد عدد عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو الخريطة التي استُدعيت معها. يمكن تمرير دالة منطقية كمعامل إلى هذه الدالة لعد العناصر التي تحقق شرطًا معينًّا.
* الدالة <code>[[Kotlin/collections/fill|fill()]]</code>: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في <nowiki/>[[Kotlin/Array|المصفوفة]] أو القائمة التي تستدعى معها.
* الدالة <code>[[Kotlin/collections/contentDeepEquals|contentDeepEquals()‎]]</code>: تتحقق من تساوي مصفوفتين بالعُمق، أي أنَّهما تحتويان على نفس العناصر وبنفس الترتيب.
* الدالة <code>[[Kotlin/collections/indexOf|indexOf()‎]]</code>: تجلب فهرس أول ظهور لعنصر محدَّد من <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو القائمة التي استُدعيت معها.


== مصادر ==
== مصادر ==
[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/intersect.html الدالة intersect()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin.]
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/intersect.html صفحة الدالة intersect()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Methods]]
[[تصنيف:Kotlin Methods]]

مراجعة 13:20، 24 يوليو 2018

تبحث الدالة intersect()‎ عن العناصر المشتركة بين مصفوفتين أو مجموعتين ثمَّ تعيدها في مجموعة.

تحافظ المجموعة المُعادة على ترتيب تكرار المصفوفة أو المجموعة الأصلية.

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

يمكن استدعاء الدالة intersect()‎ مع المصفوفات والمجموعات:

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

infix fun <T> Iterable<T>.intersect(
    other: Iterable<T>
): Set<T>

وجود الكلمة المفتاحية infix يدل على أنَّ هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً (راجع للمزيد من التفاصيل توثيق التدوين الداخلي للدوال (infix functions)).

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

تُعاد مجموعة تحوي جميع العناصر المشتركة بين المصفوفتين أو المجموعتين المُعطَيتين.

أمثلة

استخدام الدالة intersect()‎ مع القوائم: وجود عناصر مشتركة

تعرف الشيفرة الآتية قائمتين باسم iterable و other باستخدام الدالة ()listOf ثمَّ تستخدم الدالة ()intersect لجلب جميع العناصر المشتركة بين هاتين القائمتين:

fun main(args: Array<String>) {
    val iterable = listOf(1, 2, 3, 4, 5)
    val other = listOf(2, 3, 5, 2)

    val result: Set<Int> = iterable.intersect(other)

    println(result) // [2, 3, 5]
}

استخدام الدالة intersect()‎ مع القوائم: عدم وجود عناصر مشتركة

تعرف الشيفرة الآتية قائمتين باسم iterable و other باستخدام الدالة ()listOf ثمَّ تستخدم الدالة ()intersect لجلب جميع العناصر المشتركة بين هاتين المجموعيتن:

fun main(args: Array<String>) {
	val iterable = listOf(1, 2, 3, 4, 5)
    val other = listOf(7,8,45,67)

    val result: Set<Int> = iterable.intersect(other)

    println(result) // []
}

انظر أيضًا

  • الدالة count()‎: تعيد عدد عناصر المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها. يمكن تمرير دالة منطقية كمعامل إلى هذه الدالة لعد العناصر التي تحقق شرطًا معينًّا.
  • الدالة fill()‎: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في المصفوفة أو القائمة التي تستدعى معها.
  • الدالة contentDeepEquals()‎: تتحقق من تساوي مصفوفتين بالعُمق، أي أنَّهما تحتويان على نفس العناصر وبنفس الترتيب.
  • الدالة indexOf()‎: تجلب فهرس أول ظهور لعنصر محدَّد من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها.

مصادر