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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>partition()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>partition()‎</code> أصغر عنصر...')
 
ط
 
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>partition()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>partition()‎</code> في Kotlin}}</noinclude>
تعيد الدالة<code>partition()‎</code> أصغر عنصر في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة.
+
تقسم الدالة <code>partition()‎</code> [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها إلى قسمين؛ الأول يضم العناصر التي تحقِّق شرطًا محدَّدًا، والثاني يضم العناصر الأخرى المتبقيَّة.
 +
==البنية العامة==
 +
يمكن استدعاء الدالة <code>partition()‎</code> مع [[Kotlin/Array|المصفوفات]] و<nowiki/>[[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
 +
inline fun <T> Array<out T>.partition(
 +
    predicate: (T) -> Boolean
 +
): Pair<List<T>, List<T>>
 +
inline fun ByteArray.partition(
 +
    predicate: (Byte) -> Boolean
 +
): Pair<List<Byte>, List<Byte>>
 +
inline fun ShortArray.partition(
 +
    predicate: (Short) -> Boolean
 +
): Pair<List<Short>, List<Short>>
 +
inline fun IntArray.partition(
 +
    predicate: (Int) -> Boolean
 +
): Pair<List<Int>, List<Int>>
 +
inline fun LongArray.partition(
 +
    predicate: (Long) -> Boolean
 +
): Pair<List<Long>, List<Long>>
 +
inline fun FloatArray.partition(
 +
    predicate: (Float) -> Boolean
 +
): Pair<List<Float>, List<Float>>
 +
inline fun DoubleArray.partition(
 +
    predicate: (Double) -> Boolean
 +
): Pair<List<Double>, List<Double>>
 +
inline fun BooleanArray.partition(
 +
    predicate: (Boolean) -> Boolean
 +
): Pair<List<Boolean>, List<Boolean>>
 +
inline fun CharArray.partition(
 +
    predicate: (Char) -> Boolean
 +
): Pair<List<Char>, List<Char>>
 +
 
 +
inline fun <T> Iterable<T>.partition(
 +
    predicate: (T) -> Boolean
 +
): Pair<List<T>, List<T>>
 +
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
 +
 
 +
== المعاملات ==
  
==البنية العامة==
+
=== <code>predicate</code> ===
<syntaxhighlight lang="kotlin">
+
دالةٌ تطبق على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة. يمرر إليها كل عنصر من العناصر على حدة ثم يعيد قيمة منطقية مقابلة له.
fun Array<out Double>.min(): Double?
 
fun Array<out Float>.min(): Float?
 
fun FloatArray.min(): Float?
 
fun DoubleArray.min(): Double?
 
fun Iterable<Double>.min(): Double?
 
fun Iterable<Float>.min(): Float?
 
</syntaxhighlight>'''بيئة التشغيل: Kotlin 1.1'''
 
  
إن كان أيّ من العناصر يساوي <code>NaN</code> فستعيد الدالة<code>partition()‎</code> القيمة <code>NaN</code>: <syntaxhighlight lang="kotlin">
+
==القيم المعادة==
fun <T : Comparable<T>> Array<out T>.min(): T?
+
يعاد زوجٌ من القوائم، إذ تضم الأولى العناصر التي تحقِّق الشرط <code>predicate</code> المعطى (أي تعيد <code>true</code> معها)، بينما تضم الثانية العناصر الأخرى.
fun ByteArray.min(): Byte?
 
fun ShortArray.min(): Short?
 
fun IntArray.min(): Int?
 
fun LongArray.min(): Long?
 
fun CharArray.min(): Char?
 
fun <T : Comparable<T>> Iterable<T>.min(): T?
 
</syntaxhighlight>
 
==القيم المٌعادة==
 
أصغر عنصر في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة.
 
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()partition</code> مع المصفوفات===
+
استعمال الدالة <code>()partition</code> لفصل الأعداد الزوجية عن الأعداد الفردية:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]]<nowiki/> باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستدعي الدالة <code>()partition</code> عبر <code>array</code>  للحصول على أصغر عدد فيها<nowiki/>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(0, 2, 2, 4, 7, 5)
+
    val iterable = listOf(1, 2, 3, 4, 5)
       
+
    val pair: Pair<Iterable<Int>, Iterable<Int>> = iterable.partition { it % 2 == 0 }
println(array.min()// 0
+
 
 +
    println(pair) // ([2, 4], [1, 3, 5])
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
===انظر أيضًا===
+
==انظر أيضًا==
*<code>[[Kotlin/collections/max|max()]]</code>‎: تعيد أكبر عنصر في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة.
+
* الدالة <nowiki/>[[Kotlin/collections/filter|<code>filter()</code>‎]]: ترشِّح عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها.
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/min.html الدالة  partition()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/partition.html صفحة الدالة partition()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Collection]]

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

تقسم الدالة partition()‎ المصفوفة أو المجموعة التي استُدعيت معها إلى قسمين؛ الأول يضم العناصر التي تحقِّق شرطًا محدَّدًا، والثاني يضم العناصر الأخرى المتبقيَّة.

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

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

inline fun <T> Array<out T>.partition(
    predicate: (T) -> Boolean
): Pair<List<T>, List<T>> 
inline fun ByteArray.partition(
    predicate: (Byte) -> Boolean
): Pair<List<Byte>, List<Byte>> 
inline fun ShortArray.partition(
    predicate: (Short) -> Boolean
): Pair<List<Short>, List<Short>> 
inline fun IntArray.partition(
    predicate: (Int) -> Boolean
): Pair<List<Int>, List<Int>> 
inline fun LongArray.partition(
    predicate: (Long) -> Boolean
): Pair<List<Long>, List<Long>> 
inline fun FloatArray.partition(
    predicate: (Float) -> Boolean
): Pair<List<Float>, List<Float>> 
inline fun DoubleArray.partition(
    predicate: (Double) -> Boolean
): Pair<List<Double>, List<Double>>
inline fun BooleanArray.partition(
    predicate: (Boolean) -> Boolean
): Pair<List<Boolean>, List<Boolean>> 
inline fun CharArray.partition(
    predicate: (Char) -> Boolean
): Pair<List<Char>, List<Char>> 

inline fun <T> Iterable<T>.partition(
    predicate: (T) -> Boolean
): Pair<List<T>, List<T>>

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

المعاملات

predicate

دالةٌ تطبق على كل عنصر من عناصر المصفوفة أو المجموعة المعطاة. يمرر إليها كل عنصر من العناصر على حدة ثم يعيد قيمة منطقية مقابلة له.

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

يعاد زوجٌ من القوائم، إذ تضم الأولى العناصر التي تحقِّق الشرط predicate المعطى (أي تعيد true معها)، بينما تضم الثانية العناصر الأخرى.

أمثلة

استعمال الدالة ()partition لفصل الأعداد الزوجية عن الأعداد الفردية:

fun main(args: Array<String>) {
    val iterable = listOf(1, 2, 3, 4, 5)
    val pair: Pair<Iterable<Int>, Iterable<Int>> = iterable.partition { it % 2 == 0 }

    println(pair) // ([2, 4], [1, 3, 5])
}

انظر أيضًا

مصادر