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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة intersect()‎ في لغة Kotlin}}</noinclude> تعيد الدالة <code>intersect()‎</code> فهرس آخر ظهور للع...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة intersect()‎ في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة intersect()‎ في لغة Kotlin}}</noinclude>
تعيد الدالة <code>intersect()‎</code> فهرس آخر ظهور للعنصر المُمرّر إليها في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي المُمرّر <code>predicate</code>، أو ‎<code>-1‎</code> إن لم يكن هناك أي عنصر يحقق ذلك.
تعيد الدالة <code>intersect()‎</code>[[Kotlin/Set|مجموعة]] تحتوي كل العناصر المشتركة بين  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها وتلك الممرّرة إلى الدالة.
 
المجموعة المُعادة تحافظ على ترتيب تكرار [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.
== البنية العامة ==
== البنية العامة ==
يمكن استدعاء  الدالة <code>intersect()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
يمكن استدعاء  الدالة <code>intersect()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.indexOfLast(
infix fun <T> Array<out T>.intersect(
     predicate: (T) -> Boolean
     other: Iterable<T>
): Int
): Set<T>
inline fun ByteArray.indexOfLast(
infix fun ByteArray.intersect(
     predicate: (Byte) -> Boolean
     other: Iterable<Byte>
): Int
): Set<Byte>
inline fun ShortArray.indexOfLast(
infix fun ShortArray.intersect(
     predicate: (Short) -> Boolean
     other: Iterable<Short>
): Int
): Set<Short>
inline fun IntArray.indexOfLast(
infix fun IntArray.intersect(other: Iterable<Int>): Set<Int> (source)
    predicate: (Int) -> Boolean
infix fun LongArray.intersect(
): Int  
     other: Iterable<Long>
inline fun LongArray.indexOfLast(
): Set<Long>
     predicate: (Long) -> Boolean
infix fun FloatArray.intersect(
): Int
     other: Iterable<Float>
inline fun FloatArray.indexOfLast(
): Set<Float>
     predicate: (Float) -> Boolean
infix fun DoubleArray.intersect(
): Int
     other: Iterable<Double>
inline fun DoubleArray.indexOfLast(
): Set<Double>
     predicate: (Double) -> Boolean
infix fun BooleanArray.intersect(
): Int
     other: Iterable<Boolean>
inline fun BooleanArray.indexOfLast(
): Set<Boolean>
     predicate: (Boolean) -> Boolean
infix fun CharArray.intersect(
): Int
     other: Iterable<Char>
inline fun CharArray.indexOfLast(
): Set<Char>
     predicate: (Char) -> Boolean
): Int


</syntaxhighlight>يمكن استدعاء  الدالة <code>intersect()‎</code> عبر [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
</syntaxhighlight>يمكن استدعاء  الدالة <code>intersect()‎</code> عبر [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
inline fun <T> Iterable<T>.indexOfLast(
infix fun <T> Iterable<T>.intersect(
     predicate: (T) -> Boolean
     other: Iterable<T>
): Int
): Set<T>
</syntaxhighlight>يمكن استدعاء  الدالة <code>intersect()‎</code> عبر [[Kotlin/List|اللوائح]]:<syntaxhighlight lang="kotlin">
</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)]].
inline fun <T> List<T>.indexOfLast(
    predicate: (T) -> Boolean
): Int
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
== القيم المعادة ==
== القيم المعادة ==
فهرس آخر ظهور للعنصر المُمرّر إلى الدالة <code>indexOfLast()‎</code> في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي المُمرّر <code>predicate</code>، أو ‎<code>-1‎</code> إن لم يكن هناك أي عنصر يحقق ذلك.
مجموعة تحتوي كل العناصر المشتركة بين  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها وتلك الممرّرة إلى الدالة.
== أمثلة ==
== أمثلة ==


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


     print(array.indexOfLast { it > 2 }) // 5
     println(result) // [2, 3, 5]
}
}
</syntaxhighlight>
</syntaxhighlight>


=== استخدام الدالة<code>intersect()‎</code> على مصفوفة: الحالة الثانية ===
=== استخدام الدالة<code>intersect()‎</code> على اللوائح: الحالة الثانية ===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code> مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة  <code>()intersect</code>  للحصول على فهرس آخر ظهور لعدد أكبر من <code>8</code>، <nowiki/>ولمّا كانت كل عناصر المصفوفة <code>array</code> أصغر من العدد <code>8</code>، فستعيد الدالة <code>()indexOfLast</code> القيمة ‎<code>-1‎‎</code>:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحتين]] باسم <code>iterable</code> و <code>other</code> مكونة من أعداد باستخدام الدالة <code>()listOf</code>، ثم تستخدم الدالة  <code>()intersect</code>  للحصول على [[Kotlin/Set|مجموعة]] تضم العناصر المشتركة بين [[Kotlin/List|اللائحتين]]، ولمّا لم تكن بينهما عناصر مشتركة، فستعيد مجموعة فارغة:<nowiki/><nowiki/><syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
    val array = arrayOf(1,2,3,4,5,6)
val iterable = listOf(1, 2, 3, 4, 5)
    val other = listOf(7,8,45,67)
 
    val result: Set<Int> = iterable.intersect(other)


     print(array.indexOfLast { it > 8 }) // -1
     println(result) // []
}
}
</syntaxhighlight>
</syntaxhighlight>
سطر 68: سطر 69:


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

مراجعة 17:31، 27 مايو 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>

يمكن استدعاء الدالة 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.