الفرق بين المراجعتين ل"Kotlin/collections/flatten"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>first()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>flatten()‎</code> العنصر الأول...')
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>first()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>flatten()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة<code>flatten()‎</code> العنصر الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، وفي حال تمرير دالة منطقية كمعامل فستعيد أول عنصر يحقق تلك الدالة.
+
تعيد الدالة<code>flatten()‎</code> [[Kotlin/collections/List|لائحة]] تحتوي جميع عناصر [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]] التي تنتمي إلى [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.  
 
 
إن كانت  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت الدالة<code>first()‎</code>عبرها فارغة أو لم يكن هناك أي عنصر يحقق الدالة المنطقية الممررة إليها فستطلق الدالة الاستثناء <code>NoSuchElementException</code>.
 
 
==البنية العامة==
 
==البنية العامة==
في حال استدعاء الدالة<code>first()‎</code> بدون معامل فستعيد العنصر الأول.<syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة<code>flatten()‎</code> على [[Kotlin/Array|المصفوفات]].<syntaxhighlight lang="kotlin">
fun <T> Array<out T>.first(): T  
+
fun <T> Array<out Array<out T>>.flatten(): List<T>
fun ByteArray.first(): Byte
 
fun ShortArray.first(): Short
 
fun IntArray.first(): Int
 
fun LongArray.first(): Long
 
fun FloatArray.first(): Float
 
fun DoubleArray.first(): Double
 
fun BooleanArray.first(): Boolean
 
fun CharArray.first(): Char
 
  
</syntaxhighlight>في حال استدعاء الدالة<code>first()‎</code> مع دالة منطقية كمعامل فستعيد العنصر الأول الذي يحقق تلك الدالة.<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>يمكن استدعاء الدالة<code>flatten()‎</code> على [[Kotlin/Array|المجموعات]].<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.first(
+
fun <T> Iterable<Iterable<T>>.flatten(): List<T>  
    predicate: (T) -> Boolean
 
): T  
 
inline fun ByteArray.first(
 
    predicate: (Byte) -> Boolean
 
): Byte
 
inline fun ShortArray.first(
 
    predicate: (Short) -> Boolean
 
): Short
 
inline fun IntArray.first(predicate: (Int) -> Boolean): Int (source)
 
inline fun LongArray.first(
 
    predicate: (Long) -> Boolean
 
): Long
 
inline fun FloatArray.first(
 
    predicate: (Float) -> Boolean
 
): Float
 
inline fun DoubleArray.first(
 
    predicate: (Double) -> Boolean
 
): Double
 
inline fun BooleanArray.first(
 
    predicate: (Boolean) -> Boolean
 
): Boolean
 
inline fun CharArray.first(
 
    predicate: (Char) -> Boolean
 
): Char
 
inline fun <T> Iterable<T>.first(
 
    predicate: (T) -> Boolean
 
): T
 
  
</syntaxhighlight>في حال استدعاء الدالة<code>first()‎</code> بدون معامل على<nowiki/>[[Kotlin/collections|مجموعة]] أو [[Kotlin/collections/List|لائحة]] فستعيد العنصر الأول الأول:<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>
fun <T> List<T>.first(): T
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
 
==القيم المٌعادة==
 
==القيم المٌعادة==
العنصر الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، وفي حال تمرير دالة منطقية كمعامل فستعيد أول عنصر يحقق تلك الدالة.  
+
[[Kotlin/collections/List|لائحة]] تحتوي جميع عناصر [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]] التي تنتمي إلى [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها.  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()first</code> مع المصفوفات: الحالة الأولى===
+
===استخدام الدالة <code>()flatten</code> مع المصفوفات===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()first</code> لإيجاد العنصر  الأول في [[Kotlin/Array|المصفوفة]]<code>array</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>deepArray</code>مكونة من ثلاثة مصفوفات باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()flatten</code> لإنشاء [[Kotlin/collections/List|لائحة]] تضم جميع عناصر  [[Kotlin/Array|المصفوفات]] المُنتمية إلى <code>deepArray</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(9, 2, 3, 0,6)
+
val deepArray = arrayOf(
 +
    arrayOf(1),
 +
    arrayOf(2, 3),
 +
    arrayOf(4, 5, 6)
 +
)
  
println(array.first()) // 9
+
println(deepArray.flatten()) // [1, 2, 3, 4, 5, 6]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
===استخدام الدالة <code>()flatten</code> مع المصفوفات: الحالة الثانية===
+
===استخدام الدالة <code>()flatten</code> مع اللوائح===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تُعرّف الدالة المنطقية <code>()predicate</code> التي تحدد ما إذا كان العدد المُمرّر إليها أصغر من <code>3</code> ، ثم تستخدم الدالة <code>()flatten</code> لإيجاد العنصر الأول في [[Kotlin/Array|المصفوفة]]<code>array</code> الذي يحقق الدالة <code>()predicate</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|لائحة]]<nowiki/> باسم <code>deepList</code>مكونة من ثلاثة [[Kotlin/Array|لوائح]] باستخدام الدالة <code>()listOf</code>، ثم تستخدم الدالة <code>()flatten</code> لإنشاء [[Kotlin/collections/List|لائحة]] تضم جميع عناصر  [[Kotlin/Array|اللوائح]] المُنتميةإلى <code>deepList</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(9, 2, 3, 0,6)
+
val deepList = listOf(listOf(1), listOf(2, 3), listOf(4, 5, 6))
val predicate  : (Int) -> Boolean = { it < 3 }
+
println(deepList.flatten()) // [1, 2, 3, 4, 5, 6]
 
 
println(array.first(predicate)) // 2
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
سطر 72: سطر 35:
 
*<code>[[Kotlin/collections/findLast|findLast()]]</code>‎: تعيد العنصر الأخير من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. وإن لم يكن هناك  أي عنصر يحقق ذلك فستعيد <code>null.</code>
 
*<code>[[Kotlin/collections/findLast|findLast()]]</code>‎: تعيد العنصر الأخير من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. وإن لم يكن هناك  أي عنصر يحقق ذلك فستعيد <code>null.</code>
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/first.html الدالة  flatten()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/flatten.html الدالة  flatten()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 15:06، 16 مايو 2018

تعيد الدالةflatten()‎ لائحة تحتوي جميع عناصر المصفوفات أو المجموعات التي تنتمي إلى المصفوفة أو المجموعة التي استُدعيت عبرها.

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

يمكن استدعاء الدالةflatten()‎ على المصفوفات.

fun <T> Array<out Array<out T>>.flatten(): List<T>

يمكن استدعاء الدالةflatten()‎ على المجموعات.

fun <T> Iterable<Iterable<T>>.flatten(): List<T>

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

لائحة تحتوي جميع عناصر المصفوفات أو المجموعات التي تنتمي إلى المصفوفة أو المجموعة التي استُدعيت عبرها.

أمثلة

استخدام الدالة ()flatten مع المصفوفات

تعرف الشيفرة الآتية مصفوفة باسم deepArrayمكونة من ثلاثة مصفوفات باستخدام الدالة ()arrayOf، ثم تستخدم الدالة ()flatten لإنشاء لائحة تضم جميع عناصر  المصفوفات المُنتمية إلى deepArray، ثم تطبع الناتج:

fun main(args: Array<String>) {
val deepArray = arrayOf(
    arrayOf(1),
    arrayOf(2, 3),
    arrayOf(4, 5, 6)
)

println(deepArray.flatten()) // [1, 2, 3, 4, 5, 6]
}

استخدام الدالة ()flatten مع اللوائح

تعرف الشيفرة الآتية لائحة باسم deepListمكونة من ثلاثة لوائح باستخدام الدالة ()listOf، ثم تستخدم الدالة ()flatten لإنشاء لائحة تضم جميع عناصر  اللوائح المُنتميةإلى deepList، ثم تطبع الناتج:

fun main(args: Array<String>) {
val deepList = listOf(listOf(1), listOf(2, 3), listOf(4, 5, 6))
println(deepList.flatten()) // [1, 2, 3, 4, 5, 6]
}

انظر أيضًا

  • find()‎: تعيد العنصر الأول من المصفوفة أو المجموعة التي استُدعيت عبرها والذي يحقق الشرط المنطقي predicate المُمرّر إليها. وإن لم يكن هناك أي عنصر يحقق ذلك فستعيد null.
  • findLast()‎: تعيد العنصر الأخير من المصفوفة أو المجموعة التي استُدعيت عبرها والذي يحقق الشرط المنطقي predicate المُمرّر إليها. وإن لم يكن هناك أي عنصر يحقق ذلك فستعيد null.

مصادر