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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>plus()‎</code> في لغة Kotlin}}</noinclude> تُقسّم الدالةُ<code>plus()‎</code> Kotlin/Array|الم...')
 
ط
 
(7 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>plus()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>plus()‎</code> في Kotlin}}</noinclude>
تُقسّم الدالةُ<code>plus()‎</code>  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها إلى زوج مكوّن من [[Kotlin/List|لائحتين]]، [[Kotlin/List|اللائحة]] الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى.  
+
تضيف الدالة <code>plus()‎</code> الوسيط المُمرَّر إليها إلى الكائن الذي استدعيت معه.  
 +
==البنية العامة==
 +
إن استدعيت الدالة <code>plus()‎</code> مع [[Kotlin/Array|المصفوفات]]، فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى العنصر المُمرّر إليها:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Array<T>.plus(element: T): Array<T>
 +
operator fun ByteArray.plus(element: Byte): ByteArray
 +
operator fun ShortArray.plus(element: Short): ShortArray
 +
operator fun IntArray.plus(element: Int): IntArray
 +
operator fun LongArray.plus(element: Long): LongArray
 +
operator fun FloatArray.plus(element: Float): FloatArray
 +
operator fun DoubleArray.plus(element: Double): DoubleArray
 +
operator fun BooleanArray.plus(
 +
    element: Boolean
 +
): BooleanArray
 +
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Array|المصفوفات]] مع تمرير [[Kotlin/collections|مجموعة]] كمعامل، فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى عناصر تلك [[Kotlin/collections|المجموعة]] المعطاة:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Array<T>.plus(
 +
    elements: Collection<T>
 +
): Array<T>
 +
operator fun ByteArray.plus(
 +
    elements: Collection<Byte>
 +
): ByteArray
 +
operator fun ShortArray.plus(
 +
    elements: Collection<Short>
 +
): ShortArray
 +
operator fun IntArray.plus(
 +
    elements: Collection<Int>
 +
): IntArray
 +
operator fun LongArray.plus(
 +
    elements: Collection<Long>
 +
): LongArray
 +
operator fun FloatArray.plus(
 +
    elements: Collection<Float>
 +
): FloatArray
 +
operator fun DoubleArray.plus(
 +
    elements: Collection<Double>
 +
): DoubleArray
 +
operator fun BooleanArray.plus(
 +
    elements: Collection<Boolean>
 +
): BooleanArray
 +
operator fun CharArray.plus(
 +
    elements: Collection<Char>
 +
): CharArray
 +
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Array|المصفوفات]] مع تمرير [[Kotlin/Array|مصفوفة]] كمعامل، فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى جميع عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Array<T>.plus(
 +
    elements: Array<out T>
 +
): Array<T>
 +
operator fun ByteArray.plus(elements: ByteArray): ByteArray
 +
operator fun ShortArray.plus(
 +
    elements: ShortArray
 +
): ShortArray
 +
operator fun IntArray.plus(elements: IntArray): IntArray
 +
operator fun LongArray.plus(elements: LongArray): LongArray
 +
operator fun FloatArray.plus(
 +
    elements: FloatArray
 +
): FloatArray
 +
operator fun DoubleArray.plus(
 +
    elements: DoubleArray
 +
): DoubleArray
 +
operator fun BooleanArray.plus(
 +
    elements: BooleanArray
 +
): BooleanArray
 +
 
 +
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/collections|المجموعات]]، فستعيد [[Kotlin/List|قائمةً]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافة إلى العنصر المُمرّر:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Iterable<T>.plus(element: T): List<T>
 +
operator fun <T> Collection<T>.plus(element: T): List<T>
 +
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/Array|مصفوفة]] كمعامل، فستعيد [[Kotlin/List|قائمة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Iterable<T>.plus(
 +
    elements: Array<out T>
 +
): List<T>
 +
operator fun <T> Collection<T>.plus(
 +
    elements: Array<out T>
 +
): List<T>
 +
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/Array|مجموعة]] كمعامل، فستعيد [[Kotlin/List|قائمة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|المجموعة]] المُمرّرة:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Iterable<T>.plus(
 +
    elements: Iterable<T>
 +
): List<T>
 +
operator fun <T> Collection<T>.plus(
 +
    elements: Iterable<T>
 +
): List<T>
 +
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/sequence|سلسلة]] كمعامل، فستعيد [[Kotlin/List|قائمة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|السلسلة]] المُمرّرة:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Iterable<T>.plus(
 +
    elements: Sequence<T>
 +
): List<T>
 +
operator fun <T> Collection<T>.plus(
 +
    elements: Sequence<T>
 +
): List<T>
 +
</syntaxhighlight>وإن استدعيت هذه الدالة مع مجموعة من النوع <code>[[Kotlin/Set|Set]]</code>، فستعيد مجموعة من ذات النوع تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى العنصر المُمرّر إن لم يكن موجودًا مسبقًا، وستحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Set<T>.plus(element: T): Set<T>
 +
 
 +
</syntaxhighlight>وإن استدعيت هذه الدالة مع مجموعة من النوع <code>[[Kotlin/Set|Set]]</code> مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط، فستعيد مجموعة من النوع <code>[[Kotlin/Set|Set]]</code> تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة الغير موجودة مسبقًا؛ تحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:<syntaxhighlight lang="kotlin">
 +
operator fun <T> Set<T>.plus(elements: Array<out T>): Set<T>
  
==البنية العامة==
+
</syntaxhighlight>وإن استدعيت هذه الدالة مع مجموعة من النوع [[Kotlin/Set|<code>Set</code>]] مع تمرير [[Kotlin/collections|مجموعة]] كوسيط، فستعيد مجموعة من النوع [[Kotlin/Set|<code>Set</code>]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|المجموعة]] المُمرّرة الغير موجودة مسبقًا؛ تحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:<syntaxhighlight lang="kotlin">
يمكن استدعاء الدالة <code>plus()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
+
operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>  
inline fun <T> Array<out T>.partition(
+
 
    predicate: (T) -> Boolean
+
</syntaxhighlight>وإن استدعيت هذه الدالة مع مجموعة من النوع [[Kotlin/Set|<code>Set</code>]] مع تمرير [[Kotlin/sequence|سلسلة]] كوسيط، فستعيد مجموعةً من النوع [[Kotlin/Set|<code>Set</code>]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/sequence|السلسلة]] المُمرّرة الغير موجودة مسبقًا؛ تحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:<syntaxhighlight lang="kotlin">
): Pair<List<T>, List<T>>
+
operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>  
inline fun ByteArray.partition(
+
 
    predicate: (Byte) -> Boolean
+
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]]، فستعيد خريطة جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الزوج <code>pair</code> المعطى إليها؛ تحافظ [[Kotlin/Map|الخريطة]] المعادة على ترتيب التكرار للخريطة الأصلية، وسيضاف الزوج <code>pair</code> في النهاية إن كان يملك مفتاحًا فريدًا:<syntaxhighlight lang="kotlin">
): Pair<List<Byte>, List<Byte>>  
+
operator fun <K, V> Map<out K, V>.plus(
inline fun ShortArray.partition(
+
     pair: Pair<K, V>
     predicate: (Short) -> Boolean
+
): Map<K, V>
): Pair<List<Short>, List<Short>>  
+
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]] مع تمرير [[Kotlin/collections|مجموعة]] كوسيط، فستعيد [[Kotlin/Set|خريطة]] جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج <code>pairs</code> المعطاة من تلك المجموعة إليها؛ تحافظ [[Kotlin/Map|الخريطة]] المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج <code>pairs</code> ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:<syntaxhighlight lang="kotlin">
inline fun IntArray.partition(
+
operator fun <K, V> Map<out K, V>.plus(
     predicate: (Int) -> Boolean
+
     pairs: Iterable<Pair<K, V>>
): Pair<List<Int>, List<Int>>  
+
): Map<K, V>
inline fun LongArray.partition(
+
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]] مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط، فستعيد [[Kotlin/Set|خريطة]] جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج <code>pairs</code> المعطاة من تلك المصفوفة إليها؛ تحافظ [[Kotlin/Map|الخريطة]] المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج <code>pairs</code> ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:<syntaxhighlight lang="kotlin">
     predicate: (Long) -> Boolean
+
operator fun <K, V> Map<out K, V>.plus(
): Pair<List<Long>, List<Long>>  
+
     pairs: Array<out Pair<K, V>>
inline fun FloatArray.partition(
+
): Map<K, V>
     predicate: (Float) -> Boolean
+
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]] مع تمرير [[Kotlin/Array|سلسلة]] كوسيط، فستعيد [[Kotlin/Set|خريطة]] جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج <code>pairs</code> المعطاة من تلك السلسلة إليها؛ تحافظ [[Kotlin/Map|الخريطة]] المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج <code>pairs</code> ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:<syntaxhighlight lang="kotlin">
): Pair<List<Float>, List<Float>>  
+
operator fun <K, V> Map<out K, V>.plus(
inline fun DoubleArray.partition(
+
     pairs: Sequence<Pair<K, V>>
     predicate: (Double) -> Boolean
+
): Map<K, V>
): Pair<List<Double>, List<Double>>
+
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]] مع تمرير [[Kotlin/Map|خريطة]] أخرى كوسيط، فستعيد [[Kotlin/Set|خريطة]] جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج <code>pairs</code> من تلك الخريطة المعطاة إليها؛ وستضاف أزواج الخريطة <code>map</code> المعطاة ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:<syntaxhighlight lang="kotlin">
inline fun BooleanArray.partition(
+
operator fun <K, V> Map<out K, V>.plus(
    predicate: (Boolean) -> Boolean
+
     map: Map<out K, V>
): Pair<List<Boolean>, List<Boolean>>  
+
): Map<K, V>
inline fun CharArray.partition(
+
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]). 
    predicate: (Char) -> Boolean
+
==المعاملات==
): Pair<List<Char>, List<Char>>  
+
 
 +
=== <code>element</code> ===
 +
العنصر المراد إضافته.
 +
 
 +
=== <code>elements</code> ===
 +
العناصر المراد إضافتها.
 +
 
 +
=== <code>pair</code> ===
 +
الزوج المراد إضافته إلى [[Kotlin/collections/Map|الخريطة]] المعطاة.
  
</syntaxhighlight>
+
=== <code>pairs</code> ===
 +
الأزواج المراد إضافتها إلى [[Kotlin/collections/Map|الخريطة]] المعطاة.
  
يمكن استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/collections|المجموعات]]: <syntaxhighlight lang="kotlin">
+
=== <code>map</code> ===
inline fun <T> Iterable<T>.partition(
+
[[Kotlin/collections/Map|الخريطة]] التي يراد إضافة محتواها إلى الخريطة المعطاة.
    predicate: (T) -> Boolean
 
): Pair<List<T>, List<T>>
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
  
==القيم المٌعادة==
+
==القيم المعادة==
زوج مكوّن من [[Kotlin/List|لائحتين]]، [[Kotlin/List|اللائحة]] الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</code>)، بينما تضم الثانية العناصر الأخرى.  
+
يُعاد كائن جديد يحوي جميع عناصر الكائن المعطى (ومن النوع نفسه) بالإضافة إلى العناصر أو الكائنات الممرَّرة.
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()plus</code> مع اللوائح===
+
استعمال الدالة <code>()plus</code> لإضافة عنصر واحد إلى قائمة:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحة]]<nowiki/><nowiki/> باسم <code>iterable</code>مكونة من خمسة أعداد باستخدام الدالة <code>()listOf</code>، ثم تستدعي الدالة <code>()plus</code> عبر <code>iterable</code>  للحصول على [[Kotlin/Pair|زوج]] من النوع <code>Pair<Iterable<Int>, Iterable<Int>></code>‎ مكون من [[Kotlin/List|لائحتين]]، الأولى تضم الأعداد الزوجية، والأخرى تضم الأعداد الفردية<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)
  
     val pair: Pair<Iterable<Int>, Iterable<Int>> = iterable.partition { it % 2 == 0 }
+
     println(iterable.plus(7)) // [1, 2, 3, 4, 5, 7]
 +
}
 +
</syntaxhighlight>استعمال الدالة <code>()plus</code> لإضافة جميع عناصر مصفوفة إلى قائمة:<syntaxhighlight lang="kotlin">
 +
fun main(args: Array<String>) {
 +
    val iterable = listOf(1, 2, 3, 4, 5)
 +
    val array = arrayOf(13, 25, 6)
  
     println(pair) // ([2, 4], [1, 3, 5])
+
     println(iterable.plus(array)) // [1, 2, 3, 4, 5, 13, 25, 6]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
===انظر أيضًا===
+
==انظر أيضًا==
*<code>[[Kotlin/collections/max|max()]]</code>: تعيد أكبر عنصر في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة.
+
* الدالة <code>[[Kotlin/collections/plusElement|plusElement()]]</code>: تضيف العنصر المُمرّر إليها إلى <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها.
 +
* الدالة <code>[[Kotlin/collections/fill|fill()‎]]</code>: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في <nowiki/>[[Kotlin/Array|المصفوفة]] أو القائمة التي تستدعى معها.
 +
* الدالة <code>[[Kotlin/collections/joinTo|joinTo()]]</code>‎: تضيف بادئة ولاحقة إلى جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها (أو جزءٍ منها) وتفصلها بفاصلة معينة ثمَّ تضيفها إلى سلسة نصية موجودة مسبقًا.
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/partition.html الدالة  plus()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/plus.html صفحة الدالة plus()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Collection]]

المراجعة الحالية بتاريخ 09:56، 8 سبتمبر 2018

تضيف الدالة plus()‎ الوسيط المُمرَّر إليها إلى الكائن الذي استدعيت معه.

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

إن استدعيت الدالة plus()‎ مع المصفوفات، فستعيد مصفوفة تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى العنصر المُمرّر إليها:

operator fun <T> Array<T>.plus(element: T): Array<T> 
operator fun ByteArray.plus(element: Byte): ByteArray 
operator fun ShortArray.plus(element: Short): ShortArray 
operator fun IntArray.plus(element: Int): IntArray 
operator fun LongArray.plus(element: Long): LongArray 
operator fun FloatArray.plus(element: Float): FloatArray 
operator fun DoubleArray.plus(element: Double): DoubleArray 
operator fun BooleanArray.plus(
    element: Boolean
): BooleanArray

وإن استدعيت هذه الدالة مع المصفوفات مع تمرير مجموعة كمعامل، فستعيد مصفوفة تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى عناصر تلك المجموعة المعطاة:

operator fun <T> Array<T>.plus(
    elements: Collection<T>
): Array<T> 
operator fun ByteArray.plus(
    elements: Collection<Byte>
): ByteArray 
operator fun ShortArray.plus(
    elements: Collection<Short>
): ShortArray 
operator fun IntArray.plus(
    elements: Collection<Int>
): IntArray 
operator fun LongArray.plus(
    elements: Collection<Long>
): LongArray 
operator fun FloatArray.plus(
    elements: Collection<Float>
): FloatArray 
operator fun DoubleArray.plus(
    elements: Collection<Double>
): DoubleArray 
operator fun BooleanArray.plus(
    elements: Collection<Boolean>
): BooleanArray 
operator fun CharArray.plus(
    elements: Collection<Char>
): CharArray

وإن استدعيت هذه الدالة مع المصفوفات مع تمرير مصفوفة كمعامل، فستعيد مصفوفة تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى جميع عناصر المصفوفة المُمرّرة:

operator fun <T> Array<T>.plus(
    elements: Array<out T>
): Array<T> 
operator fun ByteArray.plus(elements: ByteArray): ByteArray 
operator fun ShortArray.plus(
    elements: ShortArray
): ShortArray 
operator fun IntArray.plus(elements: IntArray): IntArray 
operator fun LongArray.plus(elements: LongArray): LongArray 
operator fun FloatArray.plus(
    elements: FloatArray
): FloatArray 
operator fun DoubleArray.plus(
    elements: DoubleArray
): DoubleArray 
operator fun BooleanArray.plus(
    elements: BooleanArray
): BooleanArray

وإن استدعيت هذه الدالة مع المجموعات، فستعيد قائمةً تضم جميع عناصر المجموعة التي استدعيت معها إضافة إلى العنصر المُمرّر:

operator fun <T> Iterable<T>.plus(element: T): List<T>
operator fun <T> Collection<T>.plus(element: T): List<T>

وإن استدعيت هذه الدالة مع المجموعات مع تمرير مصفوفة كمعامل، فستعيد قائمة تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إلى عناصر المصفوفة المُمرّرة:

operator fun <T> Iterable<T>.plus(
    elements: Array<out T>
): List<T> 
operator fun <T> Collection<T>.plus(
    elements: Array<out T>
): List<T>

وإن استدعيت هذه الدالة مع المجموعات مع تمرير مجموعة كمعامل، فستعيد قائمة تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إلى عناصر المجموعة المُمرّرة:

operator fun <T> Iterable<T>.plus(
    elements: Iterable<T>
): List<T> 
operator fun <T> Collection<T>.plus(
    elements: Iterable<T>
): List<T>

وإن استدعيت هذه الدالة مع المجموعات مع تمرير سلسلة كمعامل، فستعيد قائمة تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إلى عناصر السلسلة المُمرّرة:

operator fun <T> Iterable<T>.plus(
    elements: Sequence<T>
): List<T> 
operator fun <T> Collection<T>.plus(
    elements: Sequence<T>
): List<T>

وإن استدعيت هذه الدالة مع مجموعة من النوع Set، فستعيد مجموعة من ذات النوع تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إلى العنصر المُمرّر إن لم يكن موجودًا مسبقًا، وستحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:

operator fun <T> Set<T>.plus(element: T): Set<T>

وإن استدعيت هذه الدالة مع مجموعة من النوع Set مع تمرير مصفوفة كوسيط، فستعيد مجموعة من النوع Set تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إلى عناصر المصفوفة المُمرّرة الغير موجودة مسبقًا؛ تحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:

operator fun <T> Set<T>.plus(elements: Array<out T>): Set<T>

وإن استدعيت هذه الدالة مع مجموعة من النوع Set مع تمرير مجموعة كوسيط، فستعيد مجموعة من النوع Set تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إلى عناصر المجموعة المُمرّرة الغير موجودة مسبقًا؛ تحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:

operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>

وإن استدعيت هذه الدالة مع مجموعة من النوع Set مع تمرير سلسلة كوسيط، فستعيد مجموعةً من النوع Set تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إلى عناصر السلسلة المُمرّرة الغير موجودة مسبقًا؛ تحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:

operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>

وإن استدعيت هذه الدالة مع خريطة، فستعيد خريطة جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الزوج pair المعطى إليها؛ تحافظ الخريطة المعادة على ترتيب التكرار للخريطة الأصلية، وسيضاف الزوج pair في النهاية إن كان يملك مفتاحًا فريدًا:

operator fun <K, V> Map<out K, V>.plus(
    pair: Pair<K, V>
): Map<K, V>

وإن استدعيت هذه الدالة مع خريطة مع تمرير مجموعة كوسيط، فستعيد خريطة جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج pairs المعطاة من تلك المجموعة إليها؛ تحافظ الخريطة المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج pairs ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:

operator fun <K, V> Map<out K, V>.plus(
    pairs: Iterable<Pair<K, V>>
): Map<K, V>

وإن استدعيت هذه الدالة مع خريطة مع تمرير مصفوفة كوسيط، فستعيد خريطة جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج pairs المعطاة من تلك المصفوفة إليها؛ تحافظ الخريطة المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج pairs ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:

operator fun <K, V> Map<out K, V>.plus(
    pairs: Array<out Pair<K, V>>
): Map<K, V>

وإن استدعيت هذه الدالة مع خريطة مع تمرير سلسلة كوسيط، فستعيد خريطة جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج pairs المعطاة من تلك السلسلة إليها؛ تحافظ الخريطة المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج pairs ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:

operator fun <K, V> Map<out K, V>.plus(
    pairs: Sequence<Pair<K, V>>
): Map<K, V>

وإن استدعيت هذه الدالة مع خريطة مع تمرير خريطة أخرى كوسيط، فستعيد خريطة جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج pairs من تلك الخريطة المعطاة إليها؛ وستضاف أزواج الخريطة map المعطاة ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:

operator fun <K, V> Map<out K, V>.plus(
    map: Map<out K, V>
): Map<K, V>

وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). 

المعاملات

element

العنصر المراد إضافته.

elements

العناصر المراد إضافتها.

pair

الزوج المراد إضافته إلى الخريطة المعطاة.

pairs

الأزواج المراد إضافتها إلى الخريطة المعطاة.

map

الخريطة التي يراد إضافة محتواها إلى الخريطة المعطاة.

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

يُعاد كائن جديد يحوي جميع عناصر الكائن المعطى (ومن النوع نفسه) بالإضافة إلى العناصر أو الكائنات الممرَّرة.

أمثلة

استعمال الدالة ()plus لإضافة عنصر واحد إلى قائمة:

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

    println(iterable.plus(7)) // [1, 2, 3, 4, 5, 7]
}

استعمال الدالة ()plus لإضافة جميع عناصر مصفوفة إلى قائمة:

fun main(args: Array<String>) {
    val iterable = listOf(1, 2, 3, 4, 5)
    val array = arrayOf(13, 25, 6)

    println(iterable.plus(array)) // [1, 2, 3, 4, 5, 13, 25, 6]
}

انظر أيضًا

  • الدالة plusElement()‎: تضيف العنصر المُمرّر إليها إلى المصفوفة أو المجموعة التي استُدعيت معها.
  • الدالة fill()‎: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في المصفوفة أو القائمة التي تستدعى معها.
  • الدالة joinTo()‎: تضيف بادئة ولاحقة إلى جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها (أو جزءٍ منها) وتفصلها بفاصلة معينة ثمَّ تضيفها إلى سلسة نصية موجودة مسبقًا.

مصادر