الفرق بين المراجعتين لصفحة: «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>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><nowiki/>:<syntaxhighlight lang="kotlin">
تستدعي الشيفرة الآتية الدالة  <code>()trimIndent</code> عبر عدة [[Kotlin/String|سلاسل نصية]]، و<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>
==انظر أيضًا==
==انظر أيضًا==
* <code>[[Kotlin/kotlin.text/trimEnd|trimEnd()]]‎</code>: تعيد  الدالة <code>trimEnd()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها بعد حذف الأحرف الأخيرة التي تحقق الشرط المنطقي المُحدّد <code>predicate.</code>
*الدالة <code>[[Kotlin/kotlin.text/trim|trim()]]</code>: تحذف المحارف المحققة لشرط معين، أو محارف محددة، أو المسافات الفارغة من بداية ونهاية [[Kotlin/CharSequence|سلسلة المحارف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت معها.
* <code>[[Kotlin/kotlin.text/trim|trim()]]</code>: تعيد  الدالة <code>trim()‎</code> جزءًا من [[Kotlin/CharSequence/index|سلسلة الحروف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها بعد حذف الأحرف الأولى والأخيرالتي تحقق الشرط المنطقي المُحدّد <code>predicate.</code>
 
* <code>[[Kotlin/kotlin.text/substringAfter|substringAfter()]]‎</code>: تعيد  الدالة <code>substringAfter()‎</code> جزءًا من [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها والمُتواجد بعد أول ظهور للمُحدِّد <code>delimiter،</code> إن لم تكن [[Kotlin/String|السلسلة النصية]] الأصلية تحتوي <code>delimiter</code>، فستعيد القيمة المُمرّرة <code>missingDelimiterValue</code>، والتي قيمتها الافتراضية هي [[Kotlin/String|السلسلة النصية]] الأصلية. 
* <code>[[Kotlin/kotlin.text/substringBefore|substringBefore()]]‎</code>: تعيد  الدالة <code>substringBefore()‎</code> جزءًا من [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها والمُتواجد قبل أول ظهور للمُحدِّد <code>delimiter،</code> إن لم تكن [[Kotlin/String|السلسلة النصية]] الأصلية تحتوي <code>delimiter</code>، فستعيد القيمة المُمرّرة <code>missingDelimiterValue</code>، والتي قيمتها الافتراضية هي [[Kotlin/String|السلسلة النصية]] الأصلية. 
 
* <code>[[Kotlin/kotlin.text/removeSuffix|removeSuffix()]]‎</code>: إن كانت [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استٌدعيت عبرها الدالة <code>removeSuffix()‎</code> تنتهي باللاحقة <code>suffix</code> فستعيد [[Kotlin/String|سلسلة نصية]] أو [[Kotlin/CharSequence/index|سلسلة حروف]] جديدة مع حذف تلك اللاحقة، وإلا فستعيد [[Kotlin/String|السلسلة النصية]] أو [[Kotlin/CharSequence/index|سلسلة الحروف]] كما هي. 
* <code>[[Kotlin/kotlin.text/slice|slice()]]‎</code>: تعيد  الدالة <code>slice()‎</code> [[Kotlin/CharSequence/index|سلسلة حروف]] أو [[Kotlin/String|سلسلة نصية]] جديدة تحتوي الحروف التي تنتمي فهارسها إلى الوسيط المُمرر. 


*الدالة <code>[[Kotlin/kotlin.text/trimEnd|trimEnd()]]‎</code>: تحذف المحارف المحققة لشرط معين، أو محارف محددة، أو المسافات الفارغة من نهاية [[Kotlin/CharSequence|سلسلة المحارف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت معها.
*الدالة <code>[[Kotlin/kotlin.text/trimStart|trimStart()‎]]</code>: تحذف المحارف المحققة لشرط معين، أو محارف محددة، أو المسافات الفارغة من بداية [[Kotlin/CharSequence|سلسلة المحارف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت معها.      
*الدالة <code>[[Kotlin/kotlin.text/trimMargin|trimMargin()‎]]</code>: تحذف جميع المحارف البيضاء البادئة المتبوعة بقيمة محددة من جميع أسطر [[Kotlin/String|السلسلة النصية]] التي استُدعيت معها، كما تحذف السطر الأول والأخير إن كانا فارغين.
* الدالة <code>[[Kotlin/kotlin.text/removePrefix|removePrefix()]]‎</code>: تحذف بادئة معينة من <nowiki/>[[Kotlin/CharSequence|سلسلة من المحارف]] أو سلسلة نصية.
* الدالة <code>[[Kotlin/kotlin.text/substringBeforeLast|substringBeforeLast()‎]]</code>: تجلب كل الجزء الواقع قبل آخر ظهور <nowiki/>[[Kotlin/Char|لمحرف]] أو لسلسلة نصية معينة في سلسلة نصية.  
* الدالة <code>[[Kotlin/kotlin.text/commonPrefixWith|commonPrefixWith()]]‎</code>: تعيد أطول بادئة (prefix) مُشتركة بين <nowiki/>[[Kotlin/CharSequence|سلسلة المحارف]] التي استُدعيت معها و<nowiki/>[[Kotlin/CharSequence/index|سلسلة المحارف]] المُمرّرة إليها.
==مصادر==
==مصادر==
*[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 الدالة trimIndent()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Text]]

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

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

الجذير بالذكر أن الأسطر الفارغة لا تؤثر في حساب أقل مسافة بادئة مشتركة بين جميع الأسطر.

في حال كان هناك سطر غير فارغ ولا يوجد في بدايته أية مسافة بيضاء، فلن يكون هنالك حينئذٍ مسافة بيضاء مشتركة بين الأسطر؛أي أنَّ الدالة لن لن تجري أي تغيير على السلسلة النصية.

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

fun String.trimIndent(): String

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

تعاد سلسلة نصية جديدة تحوي جميع محتويات السلسلة النصية المعطاة بعد إزالة أقل مسافة مشتركة بين جميع أسطرها، وإزالة السطر الأول والأخير إن كانا فارغين.

أمثلة

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

fun main(args: Array<String>) {
    val withoutIndent =
        """
            ABC
            123
            456
        """.trimIndent()

    println(withoutIndent) // ABC\n123\n456
}

انظر أيضًا

مصادر