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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - 'Kotlin Functions' ب'Kotlin Function')
 
(مراجعة متوسطة واحدة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.flatMapTo()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>CharSequence.flatMapTo()‎</code> في Kotlin}}</noinclude>
تضيف الدالة<code>flatMapTo()‎</code> إلى اللائحة المُتغيرة‎ (<code>MutableCollection‎</code>) ‎<code>destination</code>المُمرّرة إليها ناتج تطبيق الدالة <code>transform()‎</code> على عناصر  [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها.   
+
تشبه الدالة <code>flatMapTo()‎</code> الدالة <code>[[Kotlin/kotlin.text/flatMap|flatMap()‎]]</code> تمامًا باستثناء أنها تضيف الناتج المعاد إلى كائن موجود مسبقًا بدلًا من إعادته فقط.   
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
سطر 7: سطر 7:
 
     transform: (Char) -> Iterable<R>
 
     transform: (Char) -> Iterable<R>
 
): C
 
): C
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
+
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
  
 +
== المعاملات ==
 +
 +
=== <code>destination</code> ===
 +
[[Kotlin/collections/MutableCollection|مجموعة قابلة للتغيير]] (MutableCollection‎) تمثل الوجهة التي سيضاف إليها الناتج.
 +
 +
=== <code>transform</code> ===
 +
دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة، وتعيد قيمة معينة تحل مكانه.
 +
 +
==القيم المعادة==
 +
يعاد المعامل <code>destination</code> بعد إضافة ناتج تطبيق الدالة <code>transform‎</code> على كل محرف من محارف [[Kotlin/CharSequence|السلسلة]] المعطاة.
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()flatMapTo</code> مع سلسلة نصية===
+
مث<nowiki/>الٌ على استعمال الدالة <code>()flatMapTo</code>:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثم<nowiki/> تعرّف لائحة فارغة باسم <code>list</code> باستخدام الدالة <code>()arrayListOf<Int>‎</code>، ثم تستدعي الدالة<code>()flatMapTo</code>  على<code>str</code> وتُمرّر لها اللائحة  <code>list</code> ودالة، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val str = "hsoub Wiki"
+
    val str = "hsoub Wiki"
val list = arrayListOf<Char>()
+
    val list = arrayListOf<Char>()
      
+
 
str.flatMapTo (list) { a -> listOf(a) }
+
     str.flatMapTo(list) { a -> listOf(a) }
      
+
 
println(list) // [h, s, o, u, b,  , W, i, k, i]
+
     println(list) // [h, s, o, u, b,  , W, i, k, i]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
* <code>[[Kotlin/kotlin.text/flatMap|flatMap()]]‎</code>: تعيد لائحة تضم ناتج تطبيق الدالة <code>transform()‎</code> المُمرّرة إليها على عناصر  سلسلة الحروف التي استُدعيت عبرها.
+
* الدالة <code>[[Kotlin/kotlin.text/flatMap|flatMap()]]‎</code>: تعيد [[Kotlin/collections/List|قائمةً]] تضم ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف [[Kotlin/CharSequence|السلسلة]] التي استُدعيت معها. 
* <code>[[Kotlin/kotlin.text/find|find()]]‎</code>: تعيد أول حرف من سلسلة الحروف التي استُدعيت عبرها يحقق الشرط المنطقي <code>predicate.</code>
+
* الدالة <code>[[Kotlin/kotlin.text/find|find()]]‎</code>: تبحث على محرف يحقق شرطًا محدَّدًا ضمن محارف <nowiki/>[[Kotlin/CharSequence|السلسلة]] التي استُدعيت معها ثمَّ تعيد أول ظهور له.
 
 
* <code>[[Kotlin/kotlin.text/filterIndexed|filterIndexed()]]‎</code>: تعيد الدالة <code>filterIndexed()</code>‎ كل الحروف من سلسلة الحروف التي استُدعيت عبرها والتي تحقق الشرط المنطقي. يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()‎</code> ثم تعيد بدورها قيمة منطقيَّة. 
 
 
 
* <code>[[Kotlin/kotlin.text/elementAt|elementAt()]]‎</code>: تعيد الحرف الموجود في الفهرس المُحدّد في سلسلة الحروف التي استُدعيت عبرها، في حال كان الفهرس خارج الحدود فستطلق الاستثناء <code>IndexOutOfBoundsException</code>. 
 
  
 
==مصادر==
 
==مصادر==
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/flat-map-to.html الدالة text.flatMapTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/flat-map-to.html صفحة الدالة CharSequence.flatMapTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Function]]
 
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Text]]
 +
[[تصنيف:Kotlin CharSequence]]

المراجعة الحالية بتاريخ 10:22، 3 سبتمبر 2018

تشبه الدالة flatMapTo()‎ الدالة flatMap()‎ تمامًا باستثناء أنها تضيف الناتج المعاد إلى كائن موجود مسبقًا بدلًا من إعادته فقط.

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

inline fun <R, C : MutableCollection<in R>> CharSequence.flatMapTo(
    destination: C, 
    transform: (Char) -> Iterable<R>
): C

وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)).

المعاملات

destination

مجموعة قابلة للتغيير (MutableCollection‎) تمثل الوجهة التي سيضاف إليها الناتج.

transform

دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة، وتعيد قيمة معينة تحل مكانه.

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

يعاد المعامل destination بعد إضافة ناتج تطبيق الدالة transform‎ على كل محرف من محارف السلسلة المعطاة.

أمثلة

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

fun main(args: Array<String>) {
    val str = "hsoub Wiki"
    val list = arrayListOf<Char>()

    str.flatMapTo(list) { a -> listOf(a) }

    println(list) // [h, s, o, u, b,  , W, i, k, i]
}

انظر أيضًا

  • الدالة flatMap(): تعيد قائمةً تضم ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف السلسلة التي استُدعيت معها. 
  • الدالة find(): تبحث على محرف يحقق شرطًا محدَّدًا ضمن محارف السلسلة التي استُدعيت معها ثمَّ تعيد أول ظهور له.

مصادر