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

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>joinTo()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>joinTo()‎</code> في Kotlin}}</noinclude>
تجمّع الدالة<code>joinTo()‎</code> [[Kotlin/String|سلسة نصية]] من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها مفصولة بالمعامل المُمرّر  <code>separator</code> وباستخدام البادئة <code>prefix</code> واللاحقة <code>postfix</code> في حال تمريرهما،
تضيف الدالة <code>joinTo()‎</code> بادئة ولاحقة إلى جميع عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها (أو جزءٍ منها) وتفصلها بفاصلة معينة ثمَّ تضيفها إلى [[Kotlin/String|سلسة نصية]] موجودة مسبقًا.


إن كانت [[Kotlin/collections|المجموعة]] كبيرة فيمكن تمرير عدد موجب <code>limit</code>، وفي تلك الحالة سيكون عدد العناصر التي تضمّها الدالة <code>joinTo()‎</code> هو <code>limit</code> إضافة إلى [[Kotlin/String|السلسلة النصية]] <code>truncated</code> التي قيمتها الابتدائية <code>"..."</code>.
إن كانت [[Kotlin/collections|المجموعة]] كبيرة، فيمكن تحديد جزءٍ أولي معين منها فقط لإضافته إلى السلسلة النصية؛ في هذه الحالة، تضاف سلسلة نصية معينة، مثل "..." أو "...إلخ" إلى السلسلة النصية الناتجة للدلالة على وجود جزء مقتطع.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
سطر 97: سطر 97:


</syntaxhighlight>
</syntaxhighlight>
==القيم المٌعادة==
[[Kotlin/String|سلسة نصية]] مكونة من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها مفصولة بالمعامل المُمرّر  <code>separator</code> وباستخدام البادئة <code>prefix</code> واللاحقة <code>postfix</code> في حال تمريرهما،


إن كانت [[Kotlin/collections|المجموعة]] كبيرة فيمكن تمرير عدد موجب <code>limit</code>، وفي تلك الحالة سيكون عدد العناصر التي تضمّها الدالة <code>joinTo()‎</code> هو <code>limit</code> إضافة إلى [[Kotlin/String|السلسلة النصية]] <code>truncated</code> التي قيمتها الابتدائية <code>"..."</code>.
== المعاملات ==
 
=== <code>buffer</code> ===
كائن موجود مسبقًا يمثل الوجهة التي سيضاف إليها الناتج.
 
=== <code>separator</code> ===
الفاصل المستعمل في فصل العناصر. القيمة الافتراضية هي: " ,".
 
=== <code>prefix</code> ===
البادئة المراد إضافتها إلى بداية العناصر. القيمة الافتراضية هي: "".
 
=== <code>postfix</code> ===
اللاحقة المراد إضافتها إلى نهاية العناصر. القيمة الافتراضية هي: "".
 
=== <code>limit</code> ===
عدد صحيح يمثل العدد الأقصى للعناصر المراد تطبيق العملية عليها. القيمة الافتراضية هي: 1-.
 
=== <code>truncated</code> ===
سلسلة نصية تمثل الجزء الذي سيحل مكان الجزء المقتطع من العناصر. القيمة الافتراضية هي: "...".
 
=== <code>transform</code> ===
دالة تطبق على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة، إذ يمرر إليها العنصر وتعيد السلسلة النصية المقابلة له.
 
==القيم المعادة==
تُعاد السلسلة النصية <code>buffer</code> مضافًا إليها عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة (أو الجزء <code>limit</code> الأولي منها فقط) بعد فصلها بالفاصل <code>separator</code> وإضافة البادئة <code>prefix</code> واللاحقة <code>postfix</code> إليها إن أعطيت هذه المعاملات. عند تحديد المعامل <code>limit</code>، ستضاف السلسلة النصية <code>truncated</code> (قيمتها الافتراضية هي "...") إلى نهاية السلسلة النصية المعادة لتشير إلى وجود جزء مقتطع.
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()joinTo</code> مع اللوائح: الحالة الأولى===
===استخدام الدالة <code>()joinTo</code> مع كامل عناصر قائمة===
تعرف الشيفرة الآتية  [[Kotlin/String|سلسة نصية]]<nowiki/> باسم <code>sb</code> باستخدام الدالة <code>()StringBuilder</code>، ثم تُنشئ [[Kotlin/collections/List|لائحة]] باسم <code>numbers</code> مكونة من ثلاثة أعداد باستخدام الدالة <code>()listOf</code>، ثم تستخدم الدالة <code>()joinTo</code> على <code>numbers</code> بتمرير  <code>sb</code> وبادئة ولاحقة ، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/String|سلسة نصية]] باسم <code>sb</code> باستخدام الدالة <code>()StringBuilder</code> ثم تُنشئ [[Kotlin/collections/List|قائمة]] باسم <code>numbers</code> باستخدام الدالة <code>()listOf</code>. تُستعمَل بعد ذلك الدالة <code>()joinTo</code> لإضافة بادئة ولاحقة إلى عناصر تلك القائمة ثمَّ إضافتها إلى السلسلة النصية <code>sb</code>:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val sb = StringBuilder("An existing string and a list: ")
    val sb = StringBuilder("An existing string and a list: ")
val numbers = listOf(1, 2, 3)
    val numbers = listOf(1, 2, 3)
      
     println(numbers.joinTo(sb, prefix = "[", postfix = "]").toString()) // An existing string and a list: [1, 2, 3]
println(numbers.joinTo(sb, prefix = "[", postfix = "]").toString()) // An existing string and a list: [1, 2, 3]
}
}
</syntaxhighlight>
</syntaxhighlight>
===استخدام الدالة <code>()joinTo</code> مع اللوائح: الحالة الثانية===
===استخدام الدالة <code>()joinTo</code> مع جزء محدد من عناصر قائمة===
تعرف الشيفرة الآتية  [[Kotlin/String|سلسة نصية]] باسم <code>sb</code> باستخدام الدالة <code>()StringBuilder</code>، ثم تُنشئ  [[Kotlin/collections/List|لائحة]] باسم <code>numbers</code> مكونة من 7أعداد باستخدام الدالة <code>()listOf</code>، ثم تستخدم الدالة <code>()joinTo</code> على <code>numbers</code> بتمرير  <code>sb</code> ومعامل <code>limit</code> ، ثم تطبع الناتج:<nowiki/><syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية <nowiki/>[[Kotlin/String|سلسة نصية]] باسم <code>firstNumber</code> باستخدام الدالة <code>()StringBuilder</code> ثمَّ تستخدم الدالة <code>()joinTo</code> لاقتطاع أول خمسة عناصر من <code>lotOfNumbers</code> وإضافتها إلى تلك السلسلة النصية:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val sb = StringBuilder("An existing string and a list: ")
    val lotOfNumbers: Iterable<Int> = 1..100
val numbers = listOf(1, 2, 3, 6 , 8, 9, 5)
    val firstNumbers = StringBuilder("First five numbers: ")
      
     println(lotOfNumbers.joinTo(firstNumbers, limit = 5).toString()) // First five numbers: 1, 2, 3, 4, 5, ...
println(numbers.joinTo(sb, limit = 5).toString()) // An existing string and a list: 1, 2, 3, 6, 8, ...
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
<code>[[Kotlin/collections/joinToString|joinToString()]]</code>‎: تنشئ [[Kotlin/String|سلسة نصية]] من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها مفصولة بالمعامل المُمرّر  <code>separator</code> وباستخدام البادئة <code>prefix</code> واللاحقة <code>postfix</code> في حال تمريرهما،
* الدالة [[Kotlin/collections/joinToString|<code>joinToString()</code>]]‎: تضيف بادئة ولاحقة إلى جميع عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها (أو جزءٍ منها) بعد فصل عناصرها بفاصلة معينة ثمَّ تضع الناتج في [[Kotlin/String|سلسة نصية]] جديدة تنشئها آنذاك.
* الدالة <code>[[Kotlin/collections/fill|fill()‎]]</code>: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في <nowiki/>[[Kotlin/Array|المصفوفة]] أو القائمة التي تستدعى معها.
 
==مصادر==
==مصادر==
[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/join-to.html الدالة joinTo()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin]
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/join-to.html صفحة الدالة joinTo()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Collection]]

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

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

إن كانت المجموعة كبيرة، فيمكن تحديد جزءٍ أولي معين منها فقط لإضافته إلى السلسلة النصية؛ في هذه الحالة، تضاف سلسلة نصية معينة، مثل "..." أو "...إلخ" إلى السلسلة النصية الناتجة للدلالة على وجود جزء مقتطع.

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

fun <T, A> Array<out T>.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (T) -> CharSequence = null
): A
fun <A> ByteArray.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (Byte) -> CharSequence = null
): A 
fun <A> ShortArray.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (Short) -> CharSequence = null
): A 
fun <A> IntArray.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (Int) -> CharSequence = null
): A 
fun <A> LongArray.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (Long) -> CharSequence = null
): A 
fun <A> FloatArray.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (Float) -> CharSequence = null
): A 
fun <A> DoubleArray.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (Double) -> CharSequence = null
): A 
fun <A> BooleanArray.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (Boolean) -> CharSequence = null
): A 
fun <A> CharArray.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (Char) -> CharSequence = null
): A 
fun <T, A> Iterable<T>.joinTo(
    buffer: A, 
    separator: CharSequence = ", ", 
    prefix: CharSequence = "", 
    postfix: CharSequence = "", 
    limit: Int = -1, 
    truncated: CharSequence = "...", 
    transform: (T) -> CharSequence = null
): A

المعاملات

buffer

كائن موجود مسبقًا يمثل الوجهة التي سيضاف إليها الناتج.

separator

الفاصل المستعمل في فصل العناصر. القيمة الافتراضية هي: " ,".

prefix

البادئة المراد إضافتها إلى بداية العناصر. القيمة الافتراضية هي: "".

postfix

اللاحقة المراد إضافتها إلى نهاية العناصر. القيمة الافتراضية هي: "".

limit

عدد صحيح يمثل العدد الأقصى للعناصر المراد تطبيق العملية عليها. القيمة الافتراضية هي: 1-.

truncated

سلسلة نصية تمثل الجزء الذي سيحل مكان الجزء المقتطع من العناصر. القيمة الافتراضية هي: "...".

transform

دالة تطبق على كل عنصر من عناصر المصفوفة أو المجموعة المعطاة، إذ يمرر إليها العنصر وتعيد السلسلة النصية المقابلة له.

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

تُعاد السلسلة النصية buffer مضافًا إليها عناصر المصفوفة أو المجموعة المعطاة (أو الجزء limit الأولي منها فقط) بعد فصلها بالفاصل separator وإضافة البادئة prefix واللاحقة postfix إليها إن أعطيت هذه المعاملات. عند تحديد المعامل limit، ستضاف السلسلة النصية truncated (قيمتها الافتراضية هي "...") إلى نهاية السلسلة النصية المعادة لتشير إلى وجود جزء مقتطع.

أمثلة

استخدام الدالة ()joinTo مع كامل عناصر قائمة

تعرف الشيفرة الآتية سلسة نصية باسم sb باستخدام الدالة ()StringBuilder ثم تُنشئ قائمة باسم numbers باستخدام الدالة ()listOf. تُستعمَل بعد ذلك الدالة ()joinTo لإضافة بادئة ولاحقة إلى عناصر تلك القائمة ثمَّ إضافتها إلى السلسلة النصية sb:

fun main(args: Array<String>) {
    val sb = StringBuilder("An existing string and a list: ")
    val numbers = listOf(1, 2, 3)
    println(numbers.joinTo(sb, prefix = "[", postfix = "]").toString()) // An existing string and a list: [1, 2, 3]
}

استخدام الدالة ()joinTo مع جزء محدد من عناصر قائمة

تعرِّف الشيفرة الآتية سلسة نصية باسم firstNumber باستخدام الدالة ()StringBuilder ثمَّ تستخدم الدالة ()joinTo لاقتطاع أول خمسة عناصر من lotOfNumbers وإضافتها إلى تلك السلسلة النصية:

fun main(args: Array<String>) {
    val lotOfNumbers: Iterable<Int> = 1..100
    val firstNumbers = StringBuilder("First five numbers: ")
    println(lotOfNumbers.joinTo(firstNumbers, limit = 5).toString()) // First five numbers: 1, 2, 3, 4, 5, ...
}

انظر أيضًا

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

مصادر