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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>first()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>flatten()‎</code> العنصر الأول...')
 
ط
 
(4 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 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/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>ويمكن استدعاؤها مع [[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/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/><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> مع القوائم:<syntaxhighlight lang="kotlin">
===استخدام الدالة <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">
 
 
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>
 
==انظر أيضًا==
 
==انظر أيضًا==
*<code>[[Kotlin/collections/find|find()]]</code>: تعيد العنصر الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. وإن لم يكن هناك  أي عنصر يحقق ذلك فستعيد <code>null.</code>
+
*الدالة <code>[[Kotlin/collections/contentDeepEquals|contentDeepEquals()]]</code>: تتحقق من تساوي مصفوفتين بالعُمق، أي أنهما تحتويان على نفس العناصر وبنفس الترتيب.
*<code>[[Kotlin/collections/findLast|findLast()]]</code>‎: تعيد العنصر الأخير من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والذي يحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. وإن لم يكن هناك  أي عنصر يحقق ذلك فستعيد <code>null.</code>
+
* الدالة <code>[[Kotlin/collections/flatMap|flatMap()]]</code>‎: تعيد قائمةً تضم ناتج تطبيق الدالة <code>transform()‎</code> المُمرّرة إليها على عناصر <nowiki/>[[Kotlin/Array|المصفوفة]]، أو <nowiki/>[[Kotlin/collections|المجموعة]]، أو الخريطة التي استُدعيت معها.
 
==مصادر==
 
==مصادر==
*[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 Function]]
 +
[[تصنيف:Kotlin Collection]]

المراجعة الحالية بتاريخ 08:06، 8 سبتمبر 2018

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

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

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

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

ويمكن استدعاؤها مع المجموعات:

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

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

تُعاد قائمة واحدة تحوي جميع عناصر المصفوفات أو المجموعات المتشعبة ضمن المصفوفة أو المجموعة المعطاة.

أمثلة

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

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 مع القوائم:

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]
}

انظر أيضًا

  • الدالة contentDeepEquals()‎: تتحقق من تساوي مصفوفتين بالعُمق، أي أنهما تحتويان على نفس العناصر وبنفس الترتيب.
  • الدالة flatMap()‎: تعيد قائمةً تضم ناتج تطبيق الدالة transform()‎ المُمرّرة إليها على عناصر المصفوفة، أو المجموعة، أو الخريطة التي استُدعيت معها.

مصادر