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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة intersect()‎ في لغة Kotlin}}</noinclude> تعيد الدالة <code>intersect()‎</code> فهرس آخر ظهور للع...'
 
طلا ملخص تعديل
 
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة intersect()‎ في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>intersect()‎</code> في Kotlin}}</noinclude>
تعيد الدالة <code>intersect()‎</code> فهرس آخر ظهور للعنصر المُمرّر إليها في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/List|اللائحة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي المُمرّر <code>predicate</code>، أو ‎<code>-1‎</code> إن لم يكن هناك أي عنصر يحقق ذلك.
تبحث الدالة <code>intersect()‎</code> عن العناصر المشتركة بين مصفوفتين أو مجموعتين ثمَّ تعيدها في مجموعة.
 
تحافظ المجموعة المُعادة على ترتيب تكرار [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] الأصلية.
== البنية العامة ==
== البنية العامة ==
يمكن استدعاء الدالة <code>intersect()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
يمكن استدعاء الدالة <code>intersect()‎</code> مع [[Kotlin/Array|المصفوفات]] و<nowiki/>[[Kotlin/collections|المجموعات]]:<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
infix fun <T> Iterable<T>.intersect(
    other: Iterable<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>intersect()‎</code> عبر [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
=== <code>other</code> ===
inline fun <T> Iterable<T>.indexOfLast(
كائن من النوع <code>[[Kotlin/collections/Iterable|Iterable]]</code> يراد البحث ضمنه عن عناصر مشتركة بينه وبين المصفوفة أو المجموعة المعطاة.
    predicate: (T) -> Boolean
): Int
</syntaxhighlight>يمكن استدعاء  الدالة <code>intersect()‎</code> عبر [[Kotlin/List|اللوائح]]:<syntaxhighlight lang="kotlin">
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> إن لم يكن هناك أي عنصر يحقق ذلك.
تُعاد مجموعة تحوي جميع العناصر المشتركة بين المصفوفتين أو المجموعتين المُعطَيتين.
== أمثلة ==
== أمثلة ==
 
مثالٌ<nowiki/><nowiki/> على استعمال الدالة <code>()intersect</code>:<syntaxhighlight lang="kotlin">
=== استخدام الدالة<code>intersect()‎</code> على مصفوفة: الحالة الأولى ===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code> مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة  <code>()intersect</code>  للحصول على فهرس آخر ظهور لعدد أكبر من <code>2</code>، ثم تطبع الناتج:<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 other1 = listOf(2, 3, 5, 2)
     print(array.indexOfLast { it > 2 }) // 5
    val other2 = listOf(7, 8, 45, 67)
}
</syntaxhighlight>


=== استخدام الدالة<code>intersect()‎</code> على مصفوفة: الحالة الثانية ===
    val result1: Set<Int> = iterable.intersect(other1)
تعرف الشيفرة الآتية <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">
    println(result1) // [2, 3, 5]
fun main(args: Array<String>) {
    val array = arrayOf(1,2,3,4,5,6)


     print(array.indexOfLast { it > 8 }) // -1
     val result2: Set<Int> = iterable.intersect(other2)
    println(result2) // []
}
}
</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/index-of-last.html الدالة intersect()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin.]
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/intersect.html صفحة الدالة intersect()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Methods]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Collection]]

المراجعة الحالية بتاريخ 08:32، 8 سبتمبر 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)).

المعاملات

other

كائن من النوع Iterable يراد البحث ضمنه عن عناصر مشتركة بينه وبين المصفوفة أو المجموعة المعطاة.

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

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

أمثلة

مثالٌ على استعمال الدالة ()intersect:

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

    val result1: Set<Int> = iterable.intersect(other1)
    println(result1) // [2, 3, 5]

    val result2: Set<Int> = iterable.intersect(other2)
    println(result2) // []
}

انظر أيضًا

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

مصادر