|
|
سطر 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
| |
| 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> | | </syntaxhighlight> |
|
| |
|
| في حال استدعاء الدالة <code>plus()</code> عبر [[Kotlin/Array|المصفوفات]] مع تمرير [[Kotlin/Array|مصفوفة]] كوسيط، فستعيد [[Kotlin/Array|مصفوفة]] تضم جميع عناصر المصفوفة التي استدعيت عبرها إضافة إلى عناصر [[Kotlin/Array|المصفوفة]] المُمرّرة: <syntaxhighlight lang="kotlin"> | | في حال استدعاء الدالة <code>plusElement()</code> عبر [[Kotlin/collections|المجموعات]] فستعيد [[Kotlin/List|لائحة]] تضم جميع عناصر [[Kotlin/collections|المجموعة]] <nowiki/>التي استدعيت عبرها إضافة إلى العنصر المُمرّر: <syntaxhighlight lang="kotlin"> |
| operator fun <T> Array<T>.plus(
| | inline fun <T> Iterable<T>.plusElement(element: T): List<T> |
| elements: Collection<T>
| | inline fun <T> Collection<T>.plusElement(element: T): List<T> |
| ): Array<T> | | </syntaxhighlight><nowiki/>في حال استدعاء الدالة <code>plusElement()</code> عبر [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> ، فستعيد [[Kotlin/Set|مجموعة]] من النوع <code>Set</code> تضم جميع عناصر [[Kotlin/collections|المجموعة]] التي استدعيت عبرها إضافة إلى العنصر المُمرّر إن لم يكن موجودًا سلفًا، المجموعة المعادة تحافظ على ترتيب التكرار [[Kotlin/Set|للمجموعة]] الأصلية:<nowiki/><syntaxhighlight lang="kotlin"> |
| operator fun ByteArray.plus(
| | inline fun <T> Set<T>.plusElement(element: T): Set<T> |
| 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">
| |
| 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">
| |
| operator fun <K, V> Map<out K, V>.plus(
| |
| 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)]]. | | </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|البنية العامة]]). | | على حسب إمضاء الدالة (انظر فقرة [[Kotlin/collections/plusElement#.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> مع اللوائح=== | | ===استخدام الدالة <code>()plusElement</code> مع اللوائح=== |
| تعرف الشيفرة الآتية <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"> | | تعرف الشيفرة الآتية <nowiki/>[[Kotlin/List|لائحة]]<nowiki/><nowiki/> باسم <code>iterable</code>مكونة من خمسة أعداد باستخدام الدالة <code>()listOf</code>، ثم تستدعي الدالة <code>()plusElement</code> عبر <code>iterable</code> لإضافة العدد <code>15</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>: تضيف عنصرًا واحدًا أو عدة عناصر إلى الكائن الذي استُدعيت عبره. |
| ==مصادر== | | ==مصادر== |
| *[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 Functions]] |
تضيف الدالة plusElement()
العنصر المُمرّر إلى المصفوفة أو المجموعة التي استُدعيت عبرها.
البنية العامة
في حال استدعاء الدالة plusElement()
عبر المصفوفات فستعيد مصفوفة تضم جميع عناصر المصفوفة التي استدعيت عبرها إضافة إلى العنصر المُمرّر:
inline fun <T> Array<T>.plusElement(element: T): Array<T>
في حال استدعاء الدالة plusElement()
عبر المجموعات فستعيد لائحة تضم جميع عناصر المجموعة التي استدعيت عبرها إضافة إلى العنصر المُمرّر:
inline fun <T> Iterable<T>.plusElement(element: T): List<T>
inline fun <T> Collection<T>.plusElement(element: T): List<T>
في حال استدعاء الدالة plusElement()
عبر مجموعة من النوع Set
، فستعيد مجموعة من النوع Set
تضم جميع عناصر المجموعة التي استدعيت عبرها إضافة إلى العنصر المُمرّر إن لم يكن موجودًا سلفًا، المجموعة المعادة تحافظ على ترتيب التكرار للمجموعة الأصلية:
inline fun <T> Set<T>.plusElement(element: T): Set<T>
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المٌعادة
على حسب إمضاء الدالة (انظر فقرة البنية العامة).
أمثلة
استخدام الدالة ()plusElement
مع اللوائح
تعرف الشيفرة الآتية لائحة باسم iterable
مكونة من خمسة أعداد باستخدام الدالة ()listOf
، ثم تستدعي الدالة ()plusElement
عبر iterable
لإضافة العدد 15
إليها، ثم تطبع الناتج:
fun main(args: Array<String>) {
val iterable = listOf(1, 2, 3, 4, 5)
println(iterable.plusElement(15)) // [1, 2, 3, 4, 5, 15]
}
انظر أيضًا
plus()
: تضيف عنصرًا واحدًا أو عدة عناصر إلى الكائن الذي استُدعيت عبره.
مصادر