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

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 8: سطر 8:
</syntaxhighlight>'''بيئة التشغيل المطلوبة: Kotlin 1.2'''
</syntaxhighlight>'''بيئة التشغيل المطلوبة: Kotlin 1.2'''


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


</syntaxhighlight>تعيد  الدالة <code>trimEnd()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها بعد حذف المسافات البيضاء الأخيرة.<syntaxhighlight lang="kotlin">
لاحظ أنّ سلسلة الحروف المُمرّرة إلى الدالة <code>transform</code> سريعة الزوال (ephemeral)، وهي متاحة فقط داخل الدالة. لذلك لا يجب عليك أن تُخزّنها بأي طريقة، إلا إن أعددت مقتطفًا (snapshot) منها. 
inline fun String.trimEnd(): String


</syntaxhighlight>تعيد الدالة <code>trim()‎</code> جزءًا من [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف المسافات البيضاء الأخيرة.
كلا الوسيطين <code>step</codeو <code>size</code> ينبغي أن يكونا موجبين، ويمكن أن يكونا أكبر من طول [[Kotlin/CharSequence/index|سلسلة الحروف]] الأصلية.


يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
الوسيط <code>partialWindows</code> يحدد ما إذا كانت الدالة ستعيد  [[Kotlin/String|السلاسل النصية]] الجزئية في الأخير، وقيمتها الإفتراضية هي <code>false</code>.


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


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

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

تعيد الدالة windowed()‎ جزءًا من سلسلة الحروف أو السلسلة النصية التي استُدعيت عبرها بعد حذف الأحرف الأخير. (انظر فقرة البنية العامة).

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

inline fun CharSequence.trimEnd(
    predicate: (Char) -> Boolean
): CharSequence

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

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

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

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

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

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

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

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

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

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

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

أمثلة

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

تستدعي الشيفرة الآتية الدالة ()windowed عبر عدة سلاسل نصية وتمرر إليها عددين كوسيطين، وتطبع الناتج:

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".windowed(size = 5, step = 3)) // [wiki., i.hso, soub., b.com]
}

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

تستدعي الشيفرة الآتية الدالة ()windowed عبر عدة سلاسل نصية وتمرر إليها عددين ودالة كوسائط، وتطبع الناتج

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".windowed(size = 5, step = 3) {it.first()} ) // [w, i, s, b]
}

انظر أيضًا

مصادر