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

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

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

تضيف الدالة plusElement()‎ العنصر المُمرّر إليها إلى المصفوفة أو المجموعة التي استُدعيت معها.

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

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

inline fun <T> Array<T>.plusElement(element: T): Array<T>

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

inline fun <T> Iterable<T>.plusElement(element: T): List<T> 
inline fun <T> Collection<T>.plusElement(element: T): List<T>

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

inline fun <T> Set<T>.plusElement(element: T): Set<T>

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

المعاملات

element

العنصر المراد إضافته إلى المصفوفة أو المجموعة المعطاة.

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

تُعاد مصفوفة أو مجموعة تحتوي على جميع عناصر المصفوفة أو المجموعة المعطاة مضافًا إليها العنصر element المعطى.

أمثلة

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

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

    println(iterable.plusElement(15)) // [1, 2, 3, 4, 5, 15]
}

انظر أيضًا

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

مصادر