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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.trimIndent()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>trimIndent()‎</code> جزءًا...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>text.trimIndent()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>text.trimIndent()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة <code>trimIndent()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف الأحرف الأولى. (انظر فقرة [[Kotlin/kotlin.text/trimStart#.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>trimIndent()‎</code> عن إزاحة دنوية (minimal indent) مشتركة بين جميع أسطر [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها، ثم تمحوها من كل الأسطر، كما تمحو السطر الأول والأخير إن كانا بيضاوين (blanks)، أي مُكوّنان من مسافات بيضاء (whitespaces).
 +
 
 +
تذكّر أن الأسطر البيضاء لا تؤثر في رصد الإزاحة الدنوية.
 +
 
 +
في حال كان هناك سطر غير أبيض وليس في بدايته مسافات بيضاء، حينها ستكون الإزاحة الدنوية معدومة، وهذا يعني أنّ الدالة لن تغير الإزاحة.   
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
inline fun CharSequence.trim(
+
fun String.trimIndent(): String
    predicate: (Char) -> Boolean
 
): CharSequence
 
 
 
</syntaxhighlight>تعيد  الدالة <code>trimStart()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها بعد حذف الأحرف الأولى التي تحقق الشرط المنطقي المُحدّد <code>predicate.</code> <syntaxhighlight lang="kotlin">
 
inline fun String.trimStart(predicate: (Char) -> Boolean): String  
 
 
 
</syntaxhighlight>تعيد  الدالة <code>trimStart()‎</code> جزءًا من [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف الأحرف الأولى التي تحقق الشرط المنطقي المُحدّد <code>predicate.</code><syntaxhighlight lang="kotlin">
 
fun CharSequence.trimStart(vararg chars: Char): CharSequence
 
 
 
</syntaxhighlight>تعيد  الدالة <code>trimStart()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها بعد حذف الأحرف الأولى التي تنتمي إلى المصفوفة المُمرّرة <code>chars.</code><syntaxhighlight lang="kotlin">
 
fun String.trimStart(vararg chars: Char): String
 
 
 
</syntaxhighlight>تعيد  الدالة <code>trimStart()‎</code> جزءًا من  [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف الأحرف الأولى التي تنتمي إلى المصفوفة المُمرّرة <code>chars.</code><syntaxhighlight lang="kotlin">
 
fun CharSequence.trimStart(): CharSequence
 
</syntaxhighlight>تعيد  الدالة <code>trimStart()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها بعد حذف المسافات البيضاء الأولى.<syntaxhighlight lang="kotlin">
 
inline fun String.trimStart(): String
 
 
 
</syntaxhighlight>تعيد  الدالة <code>trimStart()‎</code> جزءًا من  [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف المسافات البيضاء الأولى.
 
 
 
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
  
 +
</syntaxhighlight>
 
==القيم المعادة==
 
==القيم المعادة==
[[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]].  
+
[[Kotlin/String|سلسلة نصية]].  
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()trimIndent</code> مع سلسلة نصية===
 
===استخدام الدالة <code>()trimIndent</code> مع سلسلة نصية===
تستدعي الشيفرة الآتية الدالة  <code>()trimIndent</code> عبر عدة [[Kotlin/String|سلاسل نصية]]، و<nowiki/>تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تستدعي الشيفرة الآتية الدالة  <code>()trimIndent</code> عبر [[Kotlin/String|سلسلة نصية]] وتمرّر القيمة المُعادة إلى المتغير <code>withoutIndent</code>، ثم <nowiki/>تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
    println("   hsoub  ".trimStart()) // "hsoub  "
+
val withoutIndent =
     println( "++++hsoub......".trimStart {!it.isLetter()} ) // hsoub......
+
"""
 +
            ABC
 +
            123
 +
            456
 +
        """.trimIndent()
 +
      
 +
println(withoutIndent) // ABC\n123\n456
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
سطر 46: سطر 37:
  
 
==مصادر==
 
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/trim-start.html الدالة text.trimIndent()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/trim-indent.html الدالة text.trimIndent()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

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

تبحث الدالة trimIndent()‎ عن إزاحة دنوية (minimal indent) مشتركة بين جميع أسطر السلسلة النصية التي استُدعيت عبرها، ثم تمحوها من كل الأسطر، كما تمحو السطر الأول والأخير إن كانا بيضاوين (blanks)، أي مُكوّنان من مسافات بيضاء (whitespaces).

تذكّر أن الأسطر البيضاء لا تؤثر في رصد الإزاحة الدنوية.

في حال كان هناك سطر غير أبيض وليس في بدايته مسافات بيضاء، حينها ستكون الإزاحة الدنوية معدومة، وهذا يعني أنّ الدالة لن تغير الإزاحة.

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

fun String.trimIndent(): String

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

سلسلة نصية.

أمثلة

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

تستدعي الشيفرة الآتية الدالة ()trimIndent عبر سلسلة نصية وتمرّر القيمة المُعادة إلى المتغير withoutIndent، ثم تطبع الناتج:

fun main(args: Array<String>) {
val withoutIndent =
"""
            ABC
            123
            456
        """.trimIndent()
    
println(withoutIndent) // ABC\n123\n456
}

انظر أيضًا

  • trimEnd(): تعيد الدالة trimEnd()‎ جزءًا من سلسلة الحروف التي استُدعيت عبرها بعد حذف الأحرف الأخيرة التي تحقق الشرط المنطقي المُحدّد predicate.
  • trim(): تعيد الدالة trim()‎ جزءًا من سلسلة الحروف أو السلسلة النصية التي استُدعيت عبرها بعد حذف الأحرف الأولى والأخيرالتي تحقق الشرط المنطقي المُحدّد predicate.

مصادر