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

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
 
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>plus()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>plus()‎</code> في Kotlin}}</noinclude>
يختلف سلوك  الدالة <code>plus()‎</code> حسب نوع الكائنات التي استُدعيت عبرها ونوع الوسائط الممررة (انظر فقرة [[Kotlin/collections/plus#.D8.A7.D9.84.D8.A8.D9.86.D9.8A.D8.A9 .D8.A7.D9.84.D8.B9.D8.A7.D9.85.D8.A9|البنية العامة]]).   
تضيف الدالة <code>plus()‎</code> الوسيط المُمرَّر إليها إلى الكائن الذي استدعيت معه.   
 
==البنية العامة==
==البنية العامة==
في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Array|المصفوفات]] فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت عبرها إضافة إلى العنصر المُمرّر:<syntaxhighlight lang="kotlin">
إن استدعيت الدالة <code>plus()‎</code> مع [[Kotlin/Array|المصفوفات]]، فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى العنصر المُمرّر إليها:<syntaxhighlight lang="kotlin">
operator fun <T> Array<T>.plus(element: T): Array<T>  
operator fun <T> Array<T>.plus(element: T): Array<T>  
operator fun ByteArray.plus(element: Byte): ByteArray  
operator fun ByteArray.plus(element: Byte): ByteArray  
سطر 14: سطر 13:
     element: Boolean
     element: Boolean
): BooleanArray  
): BooleanArray  
</syntaxhighlight>
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Array|المصفوفات]] مع تمرير [[Kotlin/collections|مجموعة]] كمعامل، فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى عناصر تلك [[Kotlin/collections|المجموعة]] المعطاة:<syntaxhighlight lang="kotlin">
 
في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Array|المصفوفات]] مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط، فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت عبرها إضافة إلى عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة: <syntaxhighlight lang="kotlin">
operator fun <T> Array<T>.plus(
operator fun <T> Array<T>.plus(
     elements: Collection<T>
     elements: Collection<T>
سطر 44: سطر 41:
     elements: Collection<Char>
     elements: Collection<Char>
): CharArray  
): CharArray  
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Array|المصفوفات]] مع تمرير [[Kotlin/Array|مصفوفة]] كمعامل، فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى جميع عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة:<syntaxhighlight lang="kotlin">
operator fun <T> Array<T>.plus(
operator fun <T> Array<T>.plus(
     elements: Array<out T>
     elements: Array<out T>
سطر 63: سطر 61:
): BooleanArray  
): BooleanArray  


</syntaxhighlight>
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/collections|المجموعات]]، فستعيد [[Kotlin/List|قائمةً]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافة إلى العنصر المُمرّر:<syntaxhighlight lang="kotlin">
 
operator fun <T> Iterable<T>.plus(element: T): List<T>
في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/collections|المجموعات]] فستعيد [[Kotlin/List|لائحة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]]<nowiki/>التي استدعيت عبرها إضافة إلى العنصر المُمرّر: <syntaxhighlight lang="kotlin">
operator fun <T> Collection<T>.plus(element: T): List<T>
inline fun <T> Iterable<T>.partition(
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/Array|مصفوفة]] كمعامل، فستعيد [[Kotlin/List|قائمة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة:<syntaxhighlight lang="kotlin">
    predicate: (T) -> Boolean
): Pair<List<T>, List<T>>
</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط، فستعيد [[Kotlin/List|لائحة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]]<nowiki/>التي استدعيت عبرها إضافة إلى عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة:<syntaxhighlight lang="kotlin">
operator fun <T> Iterable<T>.plus(
operator fun <T> Iterable<T>.plus(
     elements: Array<out T>
     elements: Array<out T>
سطر 76: سطر 71:
     elements: Array<out T>
     elements: Array<out T>
): List<T>
): List<T>
</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/Array|مجموعة]] كوسيط، فستعيد [[Kotlin/List|لائحة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت عبرها إضافة إلى عناصر [[Kotlin/Array|المجموعة]] المُمرّرة:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/Array|مجموعة]] كمعامل، فستعيد [[Kotlin/List|قائمة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|المجموعة]] المُمرّرة:<syntaxhighlight lang="kotlin">
operator fun <T> Iterable<T>.plus(
operator fun <T> Iterable<T>.plus(
     elements: Iterable<T>
     elements: Iterable<T>
سطر 83: سطر 78:
     elements: Iterable<T>
     elements: Iterable<T>
): List<T>
): List<T>
</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/sequence|سلسلة]] كوسيط، فستعيد [[Kotlin/List|لائحة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت عبرها إضافة إلى عناصر [[Kotlin/Array|السلسلة]] المُمرّرة:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/collections|المجموعات]] مع تمرير [[Kotlin/sequence|سلسلة]] كمعامل، فستعيد [[Kotlin/List|قائمة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|السلسلة]] المُمرّرة:<syntaxhighlight lang="kotlin">
operator fun <T> Iterable<T>.plus(
operator fun <T> Iterable<T>.plus(
     elements: Sequence<T>
     elements: Sequence<T>
سطر 90: سطر 85:
     elements: Sequence<T>
     elements: Sequence<T>
): List<T>  
): List<T>  
</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> ، فستعيد [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت عبرها إضافة إلى العنصر المُمرّر إن لم يكن موجودًا سلفًا، المجموعة المعادة تحافظ على ترتيب التكرار [[Kotlin/Set|للمجموعة]] الأصلية:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع مجموعة من النوع <code>[[Kotlin/Set|Set]]</code>، فستعيد مجموعة من ذات النوع تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى العنصر المُمرّر إن لم يكن موجودًا مسبقًا، وستحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:<syntaxhighlight lang="kotlin">
operator fun <T> Set<T>.plus(element: T): Set<T>  
operator fun <T> Set<T>.plus(element: T): Set<T>  


</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط، فستعيد [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت عبرها إضافة إلى عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة مع تجنب العناصر الموجودة سلفًا، المجموعة المعادة تحافظ على ترتيب التكرار [[Kotlin/Set|للمجموعة]] الأصلية:<syntaxhighlight lang="kotlin">
</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>  
operator fun <T> Set<T>.plus(elements: Array<out T>): Set<T>  


</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> مع تمرير  [[Kotlin/collections|مجموعة]] كوسيط، فستعيد [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت عبرها إضافة إلى عناصر [[Kotlin/Array|المجموعة]] المُمرّرة مع تجنب العناصر الموجودة سلفًا، المجموعة المعادة تحافظ على ترتيب التكرار [[Kotlin/Set|للمجموعة]] الأصلية:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع مجموعة من النوع [[Kotlin/Set|<code>Set</code>]] مع تمرير  [[Kotlin/collections|مجموعة]] كوسيط، فستعيد مجموعة من النوع [[Kotlin/Set|<code>Set</code>]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/Array|المجموعة]] المُمرّرة الغير موجودة مسبقًا؛ تحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:<syntaxhighlight lang="kotlin">
operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>  
operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>  


</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> مع تمرير [[Kotlin/sequence|سلسلة]] كوسيط، فستعيد [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت عبرها إضافة إلى عناصر [[Kotlin/sequence|السلسلة]] المُمرّرة مع تجنب العناصر الموجودة سلفًا، المجموعة المعادة تحافظ على ترتيب التكرار [[Kotlin/Set|للمجموعة]] الأصلية:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع مجموعة من النوع [[Kotlin/Set|<code>Set</code>]] مع تمرير [[Kotlin/sequence|سلسلة]] كوسيط، فستعيد مجموعةً من النوع [[Kotlin/Set|<code>Set</code>]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت معها إضافةً إلى عناصر [[Kotlin/sequence|السلسلة]] المُمرّرة الغير موجودة مسبقًا؛ تحافظ المجموعة المعادة على ترتيب التكرار للمجموعة الأصلية:<syntaxhighlight lang="kotlin">
operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>  
operator fun <T> Set<T>.plus(elements: Iterable<T>): Set<T>  


</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Map|قاموس]]، فستعيد [[Kotlin/Set|قاموسًا]] جديدًا للقراءة فقط (read-only) بتعويض أو إضافة مدخل (entry)  جديد انطلاقًا من [[Kotlin/Pair|الزوج]] المُمرّر  <code>pair</code>، [[Kotlin/Map|القاموس]]<nowiki/>المعاد يحافظ على ترتيب التكرار [[Kotlin/Set|للقاموس]] الأصلي:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]]، فستعيد خريطة جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الزوج <code>pair</code> المعطى إليها؛ تحافظ [[Kotlin/Map|الخريطة]] المعادة على ترتيب التكرار للخريطة الأصلية، وسيضاف الزوج <code>pair</code> في النهاية إن كان يملك مفتاحًا فريدًا:<syntaxhighlight lang="kotlin">
operator fun <K, V> Map<out K, V>.plus(
operator fun <K, V> Map<out K, V>.plus(
     pair: Pair<K, V>
     pair: Pair<K, V>
): Map<K, V>
): Map<K, V>
</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Map|قاموس]] مع تمرير [[Kotlin/collections|مجموعة]] كوسيط، فستعيد [[Kotlin/Set|قاموسًا]] جديدًا للقراءة فقط (read-only) بتعويض أو إضافة مداخلَ (entries)  جديدة انطلاقًا من [[Kotlin/Pair|المجموعة]] المُمرّرة  <code>pairs</code>، [[Kotlin/Map|القاموس]]<nowiki/>المعاد يحافظ على ترتيب التكرار [[Kotlin/Set|للقاموس]] الأصلي، والمداخل المُضافة من <code>pairs</code> ذات المفاتيح الفريدة ستُكرّر في آخر ترتيب <code>pairs</code>:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]] مع تمرير [[Kotlin/collections|مجموعة]] كوسيط، فستعيد [[Kotlin/Set|خريطة]] جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج <code>pairs</code> المعطاة من تلك المجموعة إليها؛ تحافظ [[Kotlin/Map|الخريطة]] المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج <code>pairs</code> ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:<syntaxhighlight lang="kotlin">
operator fun <K, V> Map<out K, V>.plus(
operator fun <K, V> Map<out K, V>.plus(
     pairs: Iterable<Pair<K, V>>
     pairs: Iterable<Pair<K, V>>
): Map<K, V>
): Map<K, V>
</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Map|قاموس]] مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط، فستعيد [[Kotlin/Set|قاموسًا]] جديدًا للقراءة فقط (read-only) بتعويض أو إضافة مداخلَ (entries)  جديدة انطلاقًا من [[Kotlin/Pair|المصفوفة]] المُمرّرة  <code>pairs</code>، [[Kotlin/Map|القاموس]]<nowiki/>المعاد يحافظ على ترتيب التكرار [[Kotlin/Set|للقاموس]] الأصلي، والمداخل المُضافة من <code>pairs</code> ذات المفاتيح الفريدة ستُكرّر في آخر ترتيب <code>pairs</code>:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]] مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط، فستعيد [[Kotlin/Set|خريطة]] جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج <code>pairs</code> المعطاة من تلك المصفوفة إليها؛ تحافظ [[Kotlin/Map|الخريطة]] المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج <code>pairs</code> ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:<syntaxhighlight lang="kotlin">
operator fun <K, V> Map<out K, V>.plus(
operator fun <K, V> Map<out K, V>.plus(
     pairs: Array<out Pair<K, V>>
     pairs: Array<out Pair<K, V>>
): Map<K, V>
): Map<K, V>
</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Map|قاموس]] مع تمرير [[Kotlin/Array|سلسلة]] كوسيط، فستعيد [[Kotlin/Set|قاموسًا]] جديدًا للقراءة فقط (read-only) بتعويض أو إضافة مداخلَ (entries)  جديدة انطلاقًا من [[Kotlin/Pair|السلسلة]] المُمرّرة  <code>pairs</code>، [[Kotlin/Map|القاموس]]<nowiki/>المعاد يحافظ على ترتيب التكرار [[Kotlin/Set|للقاموس]] الأصلي، والمداخل المُضافة من <code>pairs</code> ذات المفاتيح الفريدة ستُكرّر في آخر ترتيب <code>pairs</code>:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]] مع تمرير [[Kotlin/Array|سلسلة]] كوسيط، فستعيد [[Kotlin/Set|خريطة]] جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج <code>pairs</code> المعطاة من تلك السلسلة إليها؛ تحافظ [[Kotlin/Map|الخريطة]] المعادة على ترتيب التكرار للخريطة الأصلية، وستضاف الأزواج <code>pairs</code> ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:<syntaxhighlight lang="kotlin">
operator fun <K, V> Map<out K, V>.plus(
operator fun <K, V> Map<out K, V>.plus(
     pairs: Sequence<Pair<K, V>>
     pairs: Sequence<Pair<K, V>>
): Map<K, V>
): Map<K, V>
</syntaxhighlight>في حال استدعاء الدالة <code>plus()‎</code> عبر  [[Kotlin/Map|قاموس]] مع تمرير [[Kotlin/Map|قاموس]] كوسيط، فستعيد [[Kotlin/Set|قاموسًا]] جديدًا للقراءة فقط (read-only) بتعويض أو إضافة مداخلَ (entries)  جديدة انطلاقًا من [[Kotlin/Pair|القاموس]] المُمرّر  <code>map</code>، [[Kotlin/Map|القاموس]]<nowiki/>المعاد يحافظ على ترتيب التكرار [[Kotlin/Set|للقاموس]] الأصلي، المداخل المُضافة من <code>pairs</code> ذات المفاتيح الفريدة تُكرّر في آخر ترتيب <code>map</code>:<syntaxhighlight lang="kotlin">
</syntaxhighlight>وإن استدعيت هذه الدالة مع [[Kotlin/Map|خريطة]] مع تمرير [[Kotlin/Map|خريطة]] أخرى كوسيط، فستعيد [[Kotlin/Set|خريطة]] جديدة للقراءة فقط (read-only) تحوي جميع عناصر تلك الخريطة مع استبدال أو إضافة الأزواج <code>pairs</code> من تلك الخريطة المعطاة إليها؛ وستضاف أزواج الخريطة <code>map</code> المعطاة ذات المفاتيح الفريدة في النهاية وبنفس الترتيب الذي أعطيت به:<syntaxhighlight lang="kotlin">
operator fun <K, V> Map<out K, V>.plus(
operator fun <K, V> Map<out K, V>.plus(
     map: Map<out K, V>
     map: Map<out K, V>
): Map<K, V>
): Map<K, V>
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]). 
==المعاملات==


==القيم المٌعادة==
=== <code>element</code> ===
على حسب إمضاء الدالة (انظر فقرة [[Kotlin/collections/plus#.D8.A7.D9.84.D8.A8.D9.86.D9.8A.D8.A9 .D8.A7.D9.84.D8.B9.D8.A7.D9.85.D8.A9|البنية العامة]]).  
العنصر المراد إضافته.
 
=== <code>elements</code> ===
العناصر المراد إضافتها.
 
=== <code>pair</code> ===
الزوج المراد إضافته إلى [[Kotlin/collections/Map|الخريطة]] المعطاة.
 
=== <code>pairs</code> ===
الأزواج المراد إضافتها إلى [[Kotlin/collections/Map|الخريطة]] المعطاة.
 
=== <code>map</code> ===
[[Kotlin/collections/Map|الخريطة]] التي يراد إضافة محتواها إلى الخريطة المعطاة.
 
==القيم المعادة==
يُعاد كائن جديد يحوي جميع عناصر الكائن المعطى (ومن النوع نفسه) بالإضافة إلى العناصر أو الكائنات الممرَّرة.
==أمثلة==
==أمثلة==
===استخدام الدالة <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>  لإضافة العدد <code>7</code> إلى اللائحة <code>iterable</code><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)
سطر 134: سطر 144:
     println(iterable.plus(7)) // [1, 2, 3, 4, 5, 7]
     println(iterable.plus(7)) // [1, 2, 3, 4, 5, 7]
}
}
</syntaxhighlight>
</syntaxhighlight>استعمال الدالة <code>()plus</code> لإضافة جميع عناصر مصفوفة إلى قائمة:<syntaxhighlight lang="kotlin">
===استخدام الدالة <code>()plus</code> مع اللوائح: الحالة الثانية===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحة]] باسم <code>iterable</code>مكونة من خمسة أعداد باستخدام الدالة <code>()listOf</code>، ثم تعرف [[Kotlin/Array|مصفوفة]] باسم <code>array</code> مكونة من ثلاثة أعداد باستخدام الدالة  <code>()arrayOf</code>،  ثم تستدعي الدالة <code>()plus</code> عبر <code>iterable</code> مع تمرير <code>array</code> كوسيط لإضافة عناصرها إلى <code>iterable</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)
     val array = arrayOf(13,25,6)
     val array = arrayOf(13, 25, 6)


     println(iterable.plus(array)) // [1, 2, 3, 4, 5, 13, 25, 6]
     println(iterable.plus(array)) // [1, 2, 3, 4, 5, 13, 25, 6]
}
}
</syntaxhighlight>
</syntaxhighlight>
===انظر أيضًا===
==انظر أيضًا==
*<code>[[Kotlin/collections/partition|partition()]]</code>: تُقسّم <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت عبرها إلى زوج مكوّن من لائحتين، اللائحة الأولى تضم العناصر التي تحقق الشرط المنطقي المُمرّر <code>predicate</code> (أي تعيد <code>true</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/plus.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()‎: تضيف بادئة ولاحقة إلى جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها (أو جزءٍ منها) وتفصلها بفاصلة معينة ثمَّ تضيفها إلى سلسة نصية موجودة مسبقًا.

مصادر