الفرق بين المراجعتين ل"Kotlin/kotlin.text/chunked"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.chunked()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>CharSequence.chunked()‎</code> في Kotlin}}</noinclude>
تُقسّم الدالة <code>chunked()‎</code> [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها إلى لوائح تحتوي [[Kotlin/String|سلاسل نصية]]، بحيث لا يتجاوز تعدادها العدد المُمرّر <code>size</code>.
+
تقطِّع الدالة <code>chunked()‎</code> [[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها إلى عدة أجزاء لا يتجاوز كل منها حجمًا معينًا وتعيدها في [[Kotlin/collections/List|قائمة]] أو تطبِّق دالة معينة على كل منها وتضع الناتج الذي تعيده هذه الدالة في [[Kotlin/collections/List|قائمة]].
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
 
fun CharSequence.chunked(size: Int): List<String>  
 
fun CharSequence.chunked(size: Int): List<String>  
  
</syntaxhighlight>'''بيئة التشغيل المطلوبة: Kotlin 1.2'''
 
 
تُقسّم الدالة <code>chunked()‎</code> [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها إلى لوائح تحتوي [[Kotlin/String|سلاسل نصية]]، بحيث لا يتجاوز تعدادها العدد المُمرّر <code>size</code>. اللائحة الأخيرة قد يكون تعدادها أقل من <code>size</code>.<syntaxhighlight lang="kotlin">
 
 
fun <R> CharSequence.chunked(
 
fun <R> CharSequence.chunked(
 
     size: Int,  
 
     size: Int,  
 
     transform: (CharSequence) -> R
 
     transform: (CharSequence) -> R
 
): List<R>
 
): List<R>
</syntaxhighlight>'''بيئة التشغيل المطلوبة: Kotlin 1.2'''
+
</syntaxhighlight>'''بيئة التشغيل المطلوبة:''' Kotlin 1.2.
  
تُقسّم الدالة <code>chunked()‎</code> [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها إلى لوائح تحتوي [[Kotlin/String|سلاسل نصية]]، بحيث لا يتجاوز تعدادها العدد المُمرّر <code>size</code>. مع تطبيق الدالة المُمرّرة <code>transform</code> على كل منها.
+
== المعاملات ==
 +
 
 +
=== <code>size</code> ===
 +
عدد صحيح يمثل عدد العناصر المراد اقتطاعها ووضعها في كل سلسلة نصية. يجب أن يكون هذا العدد موجبًا، ويمكن أن يكون أكبر من عدد عناصر سلسلة المحارف المعطاة. يكون غالبًا حجم الجزء الأخير المقتطع أصغر من القيمة <code>size</code>.
 +
 
 +
=== <code>transform</code> ===
 +
دالةٌ يراد تطبيقها على كل جزء مقتطع من سلسلة المحارف المعطاة.
 +
 
 +
لاحظ أنّ [[Kotlin/CharSequence/index|سلسلة المحارف]] المُمرّرة إلى الدالة <code>transform</code> سريعة الزوال (ephemeral)، وهي متاحة فقط داخل الدالة. بناءً على ذلك، لا يجب أن تُخزَّن بأي طريقة إلا إن أنشأت مقتطفًا (snapshot) منها.
  
لاحظ أنّ  [[Kotlin/CharSequence/index|سلسلة الحروف]] المُمرّرة إلى الدالة <code>transform</code> سريعة الزوال (ephemeral)، وهي متاحة فقط داخل الدالة. لذلك لا يجب عليك أن تُخزّنها بأي طريقة، إلا إن أعددت مقتطفًا (snapshot) منها. [[Kotlin/CharSequence/index|سلسلة الحروف]] الأخيرة قد يكون تعدادها أقل من <code>size</code>.
 
 
==القيم المعادة==
 
==القيم المعادة==
[[Kotlin/List|لائحة]].
+
تعاد [[Kotlin/collections/List|قائمة]] تحوي جميع الأجزاء المقتطعة من سلسلة المحارف المعطاة التي لا يتجاوز حجمها القيمة <code>size</code> أو تحوي ناتج تطبيق الدالة <code>transform</code> على كل جزء من تلك الأجزاء المقتطعة التي لا يتجاوز حجمها القيمة <code>size</code>. 
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()chunked</code>===
+
مثالٌ على استعمال الدالة <code>()chunked</code>:<syntaxhighlight lang="kotlin">
تعرّف الشيفرة الآتية [[Kotlin/String|سلسلة نصية]] باسم <code>words</code>، ثم تستدعي الدالة  <code>()chunked</code> عبرها مع تمرير  العدد <code>3</code> كوسيط، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val words = "one two three four five six seven eight nine ten".split(' ')
+
    val words = "one two three four five six seven eight nine ten".split(' ')
val chunks = words.chunked(3)
+
    val chunks = words.chunked(3)
  
println(chunks) // [[one, two, three], [four, five, six], [seven, eight, nine], [ten]]
+
    println(chunks) // [[one, two, three], [four, five, six], [seven, eight, nine], [ten]]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
===انظر أيضًا===
+
==انظر أيضًا==
*<code>[[Kotlin/kotlin.text/associateBy|associateBy()]]</code>: تعيد قاموسًا (map) يحتوي عناصر سلسلة الحروف التي استُدعيت عبرها مفهرسةً بقيمة المفتاح المعاد من تمرير تلك العناصر إلى الدالة <code>keySelector</code>.
+
*الدالة <code>[[Kotlin/kotlin.text/chunkedSequence|chunkedSequence()]]</code>: تقطِّع [[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها إلى عدة أجزاء لا يتجاوز كل منها حجمًا معينًا وتعيدها في [[Kotlin/sequences/Sequence|سلسلة]] أو تطبِّق دالة معينة على كل منها وتضع الناتج الذي تعيده هذه الدالة في [[Kotlin/sequences/Sequence|سلسلة]].
 
+
*الدالة <code>[[Kotlin/kotlin.text/compareTo|compareTo()]]‎</code>: توازن بين [[Kotlin/String|سلسلتين نصيتين]] معجميًّا (lexicographically)، مع إمكانية تجاهل حالة الأحرف.
*<code>[[Kotlin/kotlin.text/associateByTo|associateByTo()]]‎</code>: تعيد قاموسا متغيرا (mutable map) يحتوي أزواجًا من "مفتاح/قيمة"، إذ القيمة هي عناصر سلسلة الحروف التي استُدعيت عبرها، والمفتاح هو الناتج المعاد من تمرير تلك العناصر إلى الدالة <code>keySelector</code>. 
+
*الدالة <code>[[Kotlin/kotlin.text/count|count()]]</code>: تَعُدُّ جميع محارف [[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها، أو المحارف المحققة لشرط معين.
*<code>[[Kotlin/kotlin.text/asSequence|asSequence()]]</code>: تنشئ كائنًا من الصنف <code>Sequence</code> والذي يُغلّف سلسلة الحروف التي استُدعيت عبرها، لأجل استعمالها في الحلقات التكرارية.
 
 
==مصادر==
 
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/chunked.html الدالة text.chunked()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/chunked.html صفحة الدالة CharSequence.chunked()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Text]]
 +
[[تصنيف:Kotlin CharSequence]]

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

تقطِّع الدالة chunked()‎ سلسلة المحارف التي استُدعيت معها إلى عدة أجزاء لا يتجاوز كل منها حجمًا معينًا وتعيدها في قائمة أو تطبِّق دالة معينة على كل منها وتضع الناتج الذي تعيده هذه الدالة في قائمة.

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

fun CharSequence.chunked(size: Int): List<String> 

fun <R> CharSequence.chunked(
    size: Int, 
    transform: (CharSequence) -> R
): List<R>

بيئة التشغيل المطلوبة: Kotlin 1.2.

المعاملات

size

عدد صحيح يمثل عدد العناصر المراد اقتطاعها ووضعها في كل سلسلة نصية. يجب أن يكون هذا العدد موجبًا، ويمكن أن يكون أكبر من عدد عناصر سلسلة المحارف المعطاة. يكون غالبًا حجم الجزء الأخير المقتطع أصغر من القيمة size.

transform

دالةٌ يراد تطبيقها على كل جزء مقتطع من سلسلة المحارف المعطاة.

لاحظ أنّ سلسلة المحارف المُمرّرة إلى الدالة transform سريعة الزوال (ephemeral)، وهي متاحة فقط داخل الدالة. بناءً على ذلك، لا يجب أن تُخزَّن بأي طريقة إلا إن أنشأت مقتطفًا (snapshot) منها.

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

تعاد قائمة تحوي جميع الأجزاء المقتطعة من سلسلة المحارف المعطاة التي لا يتجاوز حجمها القيمة size أو تحوي ناتج تطبيق الدالة transform على كل جزء من تلك الأجزاء المقتطعة التي لا يتجاوز حجمها القيمة size

أمثلة

مثالٌ على استعمال الدالة ()chunked:

fun main(args: Array<String>) {
    val words = "one two three four five six seven eight nine ten".split(' ')
    val chunks = words.chunked(3)

    println(chunks) // [[one, two, three], [four, five, six], [seven, eight, nine], [ten]]
}

انظر أيضًا

  • الدالة chunkedSequence()‎: تقطِّع سلسلة المحارف التي استُدعيت معها إلى عدة أجزاء لا يتجاوز كل منها حجمًا معينًا وتعيدها في سلسلة أو تطبِّق دالة معينة على كل منها وتضع الناتج الذي تعيده هذه الدالة في سلسلة.
  • الدالة compareTo(): توازن بين سلسلتين نصيتين معجميًّا (lexicographically)، مع إمكانية تجاهل حالة الأحرف.
  • الدالة count()‎: تَعُدُّ جميع محارف سلسلة المحارف التي استُدعيت معها، أو المحارف المحققة لشرط معين.

مصادر