الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/windowedSequence»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.windowedSequence()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>windowedSequence()‎</code...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.windowedSequence()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>text.windowedSequence()‎</code> في لغة Kotlin}}</noinclude>
تعيد  الدالة <code>windowedSequence()‎</code> لائحة مكونة  من [[Kotlin/String|سلاسل نصية]] مُقتطفة من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها (انظر فقرة [[Kotlin/kotlin.text/windowed#.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>windowedSequence()‎</code> سلسلة (Sequence) مكونة  من [[Kotlin/String|سلاسل نصية]] مُقتطفة من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها (انظر فقرة [[Kotlin/kotlin.text/windowedSequence#.D8.A7.D9.84.D8.A8.D9.86.D9.8A.D8.A9 .D8.A7.D9.84.D8.B9.D8.A7.D9.85.D8.A9|البنية العامة]]).   
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
inline fun CharSequence.trimEnd(
fun CharSequence.windowedSequence(
     predicate: (Char) -> Boolean
     size: Int,
): CharSequence
    step: Int = 1,
    partialWindows: Boolean = false
): Sequence<String>
</syntaxhighlight>'''بيئة التشغيل المطلوبة: Kotlin 1.2'''
</syntaxhighlight>'''بيئة التشغيل المطلوبة: Kotlin 1.2'''


تعيد  الدالة <code>windowedSequence()‎</code> لائحة مكونة  من [[Kotlin/String|سلاسل نصية]] بطول يساوي <code>size</code> مُقتطفة من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها، والتي تقتطفها بالتدرج بحيث تقفز في كل مرة <code>step</code> حرفا.  [[Kotlin/String|السلاسل النصية]] الأخيرة قد يكون طولها أقل من <code>size</code>.
تعيد  الدالة <code>windowedSequence()‎</code> سلسلة مكونة  من [[Kotlin/String|سلاسل نصية]] بطول يساوي <code>size</code> مُقتطفة من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها، والتي تقتطفها بالتدرج بحيث تقفز في كل مرة <code>step</code> حرفا.  [[Kotlin/String|السلاسل النصية]] الأخيرة قد يكون طولها أقل من <code>size</code>.


كلا الوسيطين <code>step</code>  و <code>size</code> ينبغي أن يكونا موجبين، ويمكن أن يكونا أكبر من طول [[Kotlin/CharSequence/index|سلسلة الحروف]] الأصلية.
كلا الوسيطين <code>step</code>  و <code>size</code> ينبغي أن يكونا موجبين، ويمكن أن يكونا أكبر من طول [[Kotlin/CharSequence/index|سلسلة الحروف]] الأصلية.


الوسيط <code>windowedSequence</code> يحدد ما إذا كانت الدالة ستعيد  [[Kotlin/String|السلاسل النصية]] الجزئية في الأخير، وقيمتها الإفتراضية هي <code>false</code>.  <syntaxhighlight lang="kotlin">
الوسيط <code>windowedSequence</code> يحدد ما إذا كانت الدالة ستعيد  [[Kotlin/String|السلاسل النصية]] الجزئية في الأخير، وقيمتها الإفتراضية هي <code>false</code>.  <syntaxhighlight lang="kotlin">
fun <R> CharSequence.windowed(
fun <R> CharSequence.windowedSequence(
     size: Int,  
     size: Int,  
     step: Int = 1,  
     step: Int = 1,  
     partialWindows: Boolean = false,  
     partialWindows: Boolean = false,  
     transform: (CharSequence) -> R
     transform: (CharSequence) -> R
): List<R>
): Sequence<R>
</syntaxhighlight>تعيد  الدالة <code>windowedSequence()‎</code> لائحة مكونة  من نتائج تطبيق الدالة <code>transform</code> على [[Kotlin/String|السلاسل النصية]] المُقتطفة من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها والتي طولها يساوي <code>size</code> وتقتطفها بالتدرج بحيث تقفز في كل مرة <code>step</code> حرفا.  [[Kotlin/String|السلاسل النصية]] الأخيرة قد يكون طولها أقل من <code>size</code>.
</syntaxhighlight>تعيد  الدالة <code>windowedSequence()‎</code> سلسلة مكونة  من نتائج تطبيق الدالة <code>transform</code> على [[Kotlin/String|السلاسل النصية]] المُقتطفة من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها والتي طولها يساوي <code>size</code> وتقتطفها بالتدرج بحيث تقفز في كل مرة <code>step</code> حرفا.  [[Kotlin/String|السلاسل النصية]] الأخيرة قد يكون طولها أقل من <code>size</code>.


لاحظ أنّ سلسلة الحروف المُمرّرة إلى الدالة <code>transform</code> سريعة الزوال (ephemeral)، وهي متاحة فقط داخل الدالة. لذلك لا يجب عليك أن تُخزّنها بأي طريقة، إلا إن أعددت مقتطفًا (snapshot) منها. 
لاحظ أنّ سلسلة الحروف المُمرّرة إلى الدالة <code>transform</code> سريعة الزوال (ephemeral)، وهي متاحة فقط داخل الدالة. لذلك لا يجب عليك أن تُخزّنها بأي طريقة، إلا إن أعددت مقتطفًا (snapshot) منها. 
سطر 28: سطر 30:


==القيم المعادة==
==القيم المعادة==
لائحة مكونة  من [[Kotlin/String|سلاسل نصية]].  
سلسلة مكونة  من [[Kotlin/String|سلاسل نصية]].  
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()windowedSequence</code> مع سلسلة نصية===
===استخدام الدالة <code>()windowedSequence</code> مع سلسلة نصية===
تستدعي الشيفرة الآتية الدالة  <code>()windowedSequence</code> عبر عدة [[Kotlin/String|سلاسل نصية]] وتمرر إليها عددين كوسيطين، و<nowiki/>تطبع الناتج:<syntaxhighlight lang="kotlin">
تستدعي الشيفرة الآتية الدالة  <code>()windowedSequence</code> عبر عدة [[Kotlin/String|سلاسل نصية]] وتمرر إليها عددين كوسيطين، و<nowiki/>تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
println("wiki.hsoub.com".windowed(size = 5, step = 1)) // [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".windowed(size = 5, step = 3)) // [wiki., i.hso, soub., b.com]
println("wiki.hsoub.com".windowedSequence(size = 5, step = 3).toList()) // [wiki., i.hso, soub., b.com]
}
}
</syntaxhighlight>
</syntaxhighlight>
سطر 40: سطر 42:
تستدعي الشيفرة الآتية الدالة <code>()windowedSequence</code> عبر عدة [[Kotlin/String|سلاسل نصية]] وتمرر إليها عددين ودالة كوسائط، وتطبع الناتج<syntaxhighlight lang="kotlin">
تستدعي الشيفرة الآتية الدالة <code>()windowedSequence</code> عبر عدة [[Kotlin/String|سلاسل نصية]] وتمرر إليها عددين ودالة كوسائط، وتطبع الناتج<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
println("wiki.hsoub.com".windowed(size = 5, step = 1)  {it.first()} ) // [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".windowed(size = 5, step = 3) {it.first()} ) // [w, i, s, b]
println("wiki.hsoub.com".windowedSequence(size = 5, step = 3) {it.first()}.toList() ) // [w, i, s, b]
}
}
</syntaxhighlight>
</syntaxhighlight>
سطر 54: سطر 56:


==مصادر==
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/windowed.html الدالة text.windowedSequence()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/windowed-sequence.html الدالة text.windowedSequence()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Functions]]

مراجعة 23:25، 13 يوليو 2018

تعيد الدالة windowedSequence()‎ سلسلة (Sequence) مكونة من سلاسل نصية مُقتطفة من سلسلة الحروف التي استُدعيت عبرها (انظر فقرة البنية العامة).

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

fun CharSequence.windowedSequence(
    size: Int, 
    step: Int = 1, 
    partialWindows: Boolean = false
): Sequence<String>

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

تعيد الدالة windowedSequence()‎ سلسلة مكونة من سلاسل نصية بطول يساوي size مُقتطفة من سلسلة الحروف التي استُدعيت عبرها، والتي تقتطفها بالتدرج بحيث تقفز في كل مرة step حرفا. السلاسل النصية الأخيرة قد يكون طولها أقل من size.

كلا الوسيطين step و size ينبغي أن يكونا موجبين، ويمكن أن يكونا أكبر من طول سلسلة الحروف الأصلية.

الوسيط windowedSequence يحدد ما إذا كانت الدالة ستعيد السلاسل النصية الجزئية في الأخير، وقيمتها الإفتراضية هي false.

fun <R> CharSequence.windowedSequence(
    size: Int, 
    step: Int = 1, 
    partialWindows: Boolean = false, 
    transform: (CharSequence) -> R
): Sequence<R>

تعيد الدالة windowedSequence()‎ سلسلة مكونة من نتائج تطبيق الدالة transform على السلاسل النصية المُقتطفة من سلسلة الحروف التي استُدعيت عبرها والتي طولها يساوي size وتقتطفها بالتدرج بحيث تقفز في كل مرة step حرفا. السلاسل النصية الأخيرة قد يكون طولها أقل من size.

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

كلا الوسيطين step و size ينبغي أن يكونا موجبين، ويمكن أن يكونا أكبر من طول سلسلة الحروف الأصلية.

الوسيط partialWindows يحدد ما إذا كانت الدالة ستعيد السلاسل النصية الجزئية في الأخير، وقيمتها الإفتراضية هي false.

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

سلسلة مكونة من سلاسل نصية.

أمثلة

استخدام الدالة ()windowedSequence مع سلسلة نصية

تستدعي الشيفرة الآتية الدالة ()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 مع سلسلة نصية مع تمرير دالة

تستدعي الشيفرة الآتية الدالة ()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]
}

انظر أيضًا

مصادر