الدالة intersect()‎ في لغة Kotlin

من موسوعة حسوب

تعيد الدالة 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>

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

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) // []
}

انظر أيضًا

  • indexOf()‎: تعيد فهرس أول ظهور للعنصر المُمرّر إليها في المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها ، أو ‎-1‎ إن كان العنصر المُمرّر غير موجود.
  • indexOfFirst()‎: تعيد فهرس أول ظهور للعنصر المُمرّر إليها في المصفوفة أو المجموعة أو اللائحة التي استُدعيت عبرها والذي يحقق الشرط المنطقي المُمرّر، أو ‎-1‎ إن كان العنصر المُمرّر غير موجود.

مصادر

الدالة intersect()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin.