الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/windowedSequence»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) مراجعة وتدقيق. |
||
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code> | <noinclude>{{DISPLAYTITLE: الدالة <code>windowedSequence()</code> في Kotlin}}</noinclude> | ||
تعيد | تعيد الدالة <code>windowedSequence()</code> [[Kotlin/sequences/Sequence|سلسلة]] تحتوي على [[Kotlin/String|سلاسل نصية]] بحجم معين ثابت جلبت من [[Kotlin/CharSequence|سلسلة المحارف]] التي استدعيت معها عند التحرك بخطوات محددة ثابتة، أو تحوي ناتج تطبيق دالة معينة على تلك السلاسل النصية المجلوبة. | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
سطر 8: | سطر 8: | ||
partialWindows: Boolean = false | partialWindows: Boolean = false | ||
): Sequence<String> | ): Sequence<String> | ||
</syntaxhighlight>''' | </syntaxhighlight>'''الإصدار المطلوب:''' Kotlin 1.2. | ||
تعيد | تعيد الدالة <code>windowedSequence()</code> [[Kotlin/collections/List|سلسلة]] مكونة من [[Kotlin/String|سلاسل نصية]] حجم كل منها يساوي <code>size</code> جلبت من [[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها في كل مرة تقفز فيها الدالة بخطوة ثابتة مقدارها <code>step</code> من المحارف. [[Kotlin/String|السلسة النصية]] الأخيرة المتبقية قد يكون طولها أقل من <code>size</code>، وتضاف إلى القيم المعادة إن كانت قيمة المعامل <code>partialWindows</code> هي <code>true</code>.<syntaxhighlight lang="kotlin"> | ||
fun <R> CharSequence.windowedSequence( | fun <R> CharSequence.windowedSequence( | ||
size: Int, | size: Int, | ||
سطر 21: | سطر 17: | ||
transform: (CharSequence) -> R | transform: (CharSequence) -> R | ||
): Sequence<R> | ): Sequence<R> | ||
</syntaxhighlight>تعيد | </syntaxhighlight>'''الإصدار المطلوب:''' Kotlin 1.2. | ||
تعيد الدالة <code>windowedSequence()</code> [[Kotlin/collections/List|سلسلة]] تحتوي على نتائج تطبيق الدالة <code>transform</code> على [[Kotlin/String|سلاسل نصية]] حجم كل منها يساوي <code>size</code> جلبت من [[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها في كل مرة تقفز فيها الدالة بخطوة ثابتة مقدارها <code>step</code> من المحارف. [[Kotlin/String|السلسة النصية]] الأخيرة المتبقية قد يكون طولها أقل من <code>size</code>، وتضاف إلى القيم المعادة إن كانت قيمة المعامل <code>partialWindows</code> هي <code>true</code>. | |||
== المعاملات == | |||
=== <code>size</code> === | |||
[[Kotlin/Int|عدد صحيح]] موجب يحدد حجم السلاسل النصية المراد جلبها عند كل خطوة. | |||
=== <code>step</code> === | |||
[[Kotlin/Int|عدد صحيح]] موجب يحدد عدد الخطوات التي يراد أن تجلب عند كل منها سلسلة نصية بحجم <code>size</code>. القيمة الافتراضية هي: 1 (أي التحرك بمقدار محرف واحد). | |||
=== <code>partialWindows</code> === | |||
قيمة منطقية تحدد إن كان يراد جلب السلسلة النصية الأخيرة المتبقية أم لا. القيمة الافتراضية هي: <code>false</code> (أي إهمال الجزء الأخير المتبقي). | |||
=== <code>transform</code> === | |||
دالة تطبق على كل سلسلة نصية جلبت عند كل خطوة وتعيد القيمة المقابلة لها. | |||
لاحظ أنّ سلسلة المحارف المُمرّرة إلى الدالة <code>transform</code> سريعة الزوال (ephemeral)، وهي متاحة فقط داخل الدالة. بناءً على ذلك، لا يجب أن تُخزَّن بأي طريقة، إلا إن أعددت مقتطفًا (snapshot) منها. | |||
==القيم المعادة== | ==القيم المعادة== | ||
سلسلة | تعاد [[Kotlin/sequences/Sequence|سلسلة]] تحتوي على [[Kotlin/String|سلاسل نصية]] حجم كل منها <code>size</code> جلبت من سلسلة المحارف المعطاة عند التحرك بخطوات ثابتة مقدار كل منها <code>step</code>، أو يعاد ناتج تطبيق الدالة <code>transform</code> على [[Kotlin/String|سلاسل نصية]] حجم كل منها <code>size</code> جلبت من سلسلة المحارف المعطاة عند التحرك بخطوات ثابتة مقدار كل منها <code>step</code>. | ||
==أمثلة== | ==أمثلة== | ||
مثالٌ على استعمال الدالة <code>()windowedSequence</code>:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
println("wiki.hsoub.com".windowedSequence(size = 5, step = 1).toList()) // [wiki., iki.h, ki.hs, i.hso, .hsou, hsoub, soub., oub.c, ub.co, b.com] | println("wiki.hsoub.com".windowedSequence(size = 5, step = 1).toList()) // [wiki., iki.h, ki.hs, i.hso, .hsou, hsoub, soub., oub.c, ub.co, b.com] | ||
println("wiki.hsoub.com".windowedSequence(size = 5, step = 3).toList()) // [wiki., i.hso, soub., b.com] | println("wiki.hsoub.com".windowedSequence(size = 5, step = 3).toList()) // [wiki., i.hso, soub., b.com] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight>مثالٌ آخر على استعمال الدالة <code>()windowedSequence</code> مع تمرير دالة:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
println("wiki.hsoub.com".windowedSequence(size = 5, step = 1) {it.first()}.toList() ) // [w, i, k, i, ., h, s, o, u, b] | println("wiki.hsoub.com".windowedSequence(size = 5, step = 1) {it.first()}.toList() ) // [w, i, k, i, ., h, s, o, u, b] | ||
println("wiki.hsoub.com".windowedSequence(size = 5, step = 3) {it.first()}.toList() ) // [w, i, s, b] | println("wiki.hsoub.com".windowedSequence(size = 5, step = 3) {it.first()}.toList() ) // [w, i, s, b] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* <code>[[Kotlin/kotlin.text/ | *الدالة <code>[[Kotlin/kotlin.text/windowed|windowed()]]</code>: تعيد [[Kotlin/collections/List|قائمة]] تحتوي على [[Kotlin/String|سلاسل نصية]] بحجم معين ثابت جلبت من [[Kotlin/CharSequence|سلسلة المحارف]] التي استدعيت معها عند التحرك بخطوات محددة ثابتة، أو تحوي ناتج تطبيق دالة معينة على تلك السلاسل النصية المجلوبة. | ||
*الدالة <code>[[Kotlin/kotlin.text/trim|trim()]]</code>: تحذف المحارف المحققة لشرط معين، أو محارف محددة، أو المسافات الفارغة من بداية ونهاية <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] أو السلسلة النصية التي استُدعيت معها. | |||
* الدالة <code>[[Kotlin/kotlin.text/subSequence|subSequence()]]</code> : تعيد جزءًا محددًا من <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها. | |||
* <code>[[Kotlin/kotlin.text/ | *الدالة <code>[[Kotlin/kotlin.text/slice|slice()]]</code>: تقتطع جزءًا محدَّدًا من <nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] أو السلسلة النصية التي استُدعيت معها ثمَّ تعيده. | ||
* <code>[[Kotlin/kotlin.text/ | |||
* <code>[[Kotlin/kotlin.text/slice|slice()]]</code>: | |||
==مصادر== | ==مصادر== | ||
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/windowed-sequence.html الدالة | *[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/windowed-sequence.html صفحة الدالة windowedSequence() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Text]] |
المراجعة الحالية بتاريخ 06:58، 7 سبتمبر 2018
تعيد الدالة windowedSequence()
سلسلة تحتوي على سلاسل نصية بحجم معين ثابت جلبت من سلسلة المحارف التي استدعيت معها عند التحرك بخطوات محددة ثابتة، أو تحوي ناتج تطبيق دالة معينة على تلك السلاسل النصية المجلوبة.
البنية العامة
fun CharSequence.windowedSequence(
size: Int,
step: Int = 1,
partialWindows: Boolean = false
): Sequence<String>
الإصدار المطلوب: Kotlin 1.2.
تعيد الدالة windowedSequence()
سلسلة مكونة من سلاسل نصية حجم كل منها يساوي size
جلبت من سلسلة المحارف التي استُدعيت معها في كل مرة تقفز فيها الدالة بخطوة ثابتة مقدارها step
من المحارف. السلسة النصية الأخيرة المتبقية قد يكون طولها أقل من size
، وتضاف إلى القيم المعادة إن كانت قيمة المعامل partialWindows
هي true
.
fun <R> CharSequence.windowedSequence(
size: Int,
step: Int = 1,
partialWindows: Boolean = false,
transform: (CharSequence) -> R
): Sequence<R>
الإصدار المطلوب: Kotlin 1.2.
تعيد الدالة windowedSequence()
سلسلة تحتوي على نتائج تطبيق الدالة transform
على سلاسل نصية حجم كل منها يساوي size
جلبت من سلسلة المحارف التي استُدعيت معها في كل مرة تقفز فيها الدالة بخطوة ثابتة مقدارها step
من المحارف. السلسة النصية الأخيرة المتبقية قد يكون طولها أقل من size
، وتضاف إلى القيم المعادة إن كانت قيمة المعامل partialWindows
هي true
.
المعاملات
size
عدد صحيح موجب يحدد حجم السلاسل النصية المراد جلبها عند كل خطوة.
step
عدد صحيح موجب يحدد عدد الخطوات التي يراد أن تجلب عند كل منها سلسلة نصية بحجم size
. القيمة الافتراضية هي: 1 (أي التحرك بمقدار محرف واحد).
partialWindows
قيمة منطقية تحدد إن كان يراد جلب السلسلة النصية الأخيرة المتبقية أم لا. القيمة الافتراضية هي: false
(أي إهمال الجزء الأخير المتبقي).
transform
دالة تطبق على كل سلسلة نصية جلبت عند كل خطوة وتعيد القيمة المقابلة لها.
لاحظ أنّ سلسلة المحارف المُمرّرة إلى الدالة transform
سريعة الزوال (ephemeral)، وهي متاحة فقط داخل الدالة. بناءً على ذلك، لا يجب أن تُخزَّن بأي طريقة، إلا إن أعددت مقتطفًا (snapshot) منها.
القيم المعادة
تعاد سلسلة تحتوي على سلاسل نصية حجم كل منها size
جلبت من سلسلة المحارف المعطاة عند التحرك بخطوات ثابتة مقدار كل منها step
، أو يعاد ناتج تطبيق الدالة transform
على سلاسل نصية حجم كل منها size
جلبت من سلسلة المحارف المعطاة عند التحرك بخطوات ثابتة مقدار كل منها step
.
أمثلة
مثالٌ على استعمال الدالة ()windowedSequence
:
fun main(args: Array<String>) {
println("wiki.hsoub.com".windowedSequence(size = 5, step = 1).toList()) // [wiki., iki.h, ki.hs, i.hso, .hsou, hsoub, soub., oub.c, ub.co, b.com]
println("wiki.hsoub.com".windowedSequence(size = 5, step = 3).toList()) // [wiki., i.hso, soub., b.com]
}
مثالٌ آخر على استعمال الدالة ()windowedSequence
مع تمرير دالة:
fun main(args: Array<String>) {
println("wiki.hsoub.com".windowedSequence(size = 5, step = 1) {it.first()}.toList() ) // [w, i, k, i, ., h, s, o, u, b]
println("wiki.hsoub.com".windowedSequence(size = 5, step = 3) {it.first()}.toList() ) // [w, i, s, b]
}
انظر أيضًا
- الدالة
windowed()
: تعيد قائمة تحتوي على سلاسل نصية بحجم معين ثابت جلبت من سلسلة المحارف التي استدعيت معها عند التحرك بخطوات محددة ثابتة، أو تحوي ناتج تطبيق دالة معينة على تلك السلاسل النصية المجلوبة. - الدالة
trim()
: تحذف المحارف المحققة لشرط معين، أو محارف محددة، أو المسافات الفارغة من بداية ونهاية سلسلة المحارف أو السلسلة النصية التي استُدعيت معها. - الدالة
subSequence()
: تعيد جزءًا محددًا من سلسلة المحارف التي استُدعيت معها. - الدالة
slice()
: تقتطع جزءًا محدَّدًا من سلسلة المحارف أو السلسلة النصية التي استُدعيت معها ثمَّ تعيده.