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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>sortBy()‎</code> في لغة Kotlin}}</noinclude> تقوم الدالة<code>sortBy()‎</code> بترتيب Kotlin/Ar...')
 
ط
 
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>sortBy()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>sortBy()‎</code> في Kotlin}}</noinclude>
تقوم الدالة<code>sortBy()‎</code> بترتيب  [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|اللائحة المتغيرة]] (<code>MutableList</code>) التي استُدعيت عبرها.  
+
ترتِّب الدالة <code>sortBy()‎</code> عناصر [[Kotlin/Array|المصفوفة]] أو [[kotlin/collections/MutableList|القائمة المتغيرة]] (MutableList) التي استُدعيت معها تصاعديًّا وفقًا للقيم التي تعيدها الدالة المُمرّرة إليها عند تطبيقها على كل عنصر.  
 
 
 
==البنية العامة==
 
==البنية العامة==
في حال استدعاء الدالة  <code>sortBy()‎</code> عبر  [[Kotlin/Array|مصفوفة]] فستقوم بترتيبها: <nowiki/><nowiki/><syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة <code>sortBy()‎</code> مع [[Kotlin/Array|المصفوفات]] [[kotlin/collections/MutableList|والقوائم المتغيرة]]:<syntaxhighlight lang="kotlin">
fun IntArray.sort()
+
inline fun <T, R : Comparable<R>> Array<out T>.sortBy(
fun LongArray.sort()
+
     crossinline selector: (T) -> R?)
fun ByteArray.sort()
 
fun ShortArray.sort()
 
fun DoubleArray.sort()
 
fun FloatArray.sort()
 
fun CharArray.sort()
 
inline fun <T : Comparable<T>> Array<out T>.sort() (source)
 
 
 
</syntaxhighlight>في حال استدعاء الدالة  <code>slice()‎</code> عبر  [[Kotlin/Array|مصفوفة]] مع تمرير معاملين عددين فستقوم بترتيب المجال المحدد بذلك المعاملين داخل [[Kotlin/Array|المصفوفة]]: <nowiki/><nowiki/><syntaxhighlight lang="kotlin">
 
fun <T> Array<out T>.sort(
 
     fromIndex: Int = 0,
 
    toIndex: Int = size)
 
fun ByteArray.sort(fromIndex: Int = 0, toIndex: Int = size)  
 
fun ShortArray.sort(fromIndex: Int = 0, toIndex: Int = size)
 
fun IntArray.sort(fromIndex: Int = 0, toIndex: Int = size)  
 
fun LongArray.sort(fromIndex: Int = 0, toIndex: Int = size)
 
fun FloatArray.sort(fromIndex: Int = 0, toIndex: Int = size)
 
fun DoubleArray.sort(fromIndex: Int = 0, toIndex: Int = size)
 
fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size)
 
 
 
</syntaxhighlight>'''بيئة التشغيل: JVM'''
 
  
في حال استدعاء الدالة  <code>slice()</code> عبر  كائن من النوع <code>[[kotlin/MutableList|MutableList]]</code> فستقوم بترتيبه:<syntaxhighlight lang="kotlin">
+
inline fun <T, R : Comparable<R>> MutableList<T>.sortBy(
fun <T : Comparable<T>> MutableList<T>.sort()
+
    crossinline selector: (T) -> R?)
 +
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
  
</syntaxhighlight>في حال استدعاء الدالة  <code>slice()‎</code> عبر  [[Kotlin/Array|مصفوفة]] مع تمرير مًقارن <code>comparison</code> كمعامل فستقوم بترتيب تلك [[Kotlin/Array|المصفوفة]] بحسب الترتيب الذي يحدده المقارن <code>comparison</code>: <syntaxhighlight lang="kotlin">
+
== المعاملات ==
inline fun <T> Array<out T>.sort(
 
    noinline comparison: (a: T, b: T) -> Int)
 
inline fun ByteArray.sort(
 
    noinline comparison: (a: Byte, b: Byte) -> Int)
 
inline fun ShortArray.sort(
 
    noinline comparison: (a: Short, b: Short) -> Int)
 
inline fun IntArray.sort(
 
    noinline comparison: (a: Int, b: Int) -> Int)
 
inline fun LongArray.sort(
 
    noinline comparison: (a: Long, b: Long) -> Int)
 
inline fun FloatArray.sort(
 
    noinline comparison: (a: Float, b: Float) -> Int)
 
inline fun DoubleArray.sort(
 
    noinline comparison: (a: Double, b: Double) -> Int)
 
inline fun CharArray.sort(
 
    noinline comparison: (a: Char, b: Char) -> Int)
 
  
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
+
=== <code>selector</code> ===
 +
دالة تطبق على كل قيمة من قيم المصفوفة أو القائمة المعطاة ثم تعيد قيمة مقابلة لكل عنصر من أجل ترتيب العناصر وفقًا لهذه القيم المعادة.
  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()sortBy</code> مع المصفوفات===
+
استعمال الدالة <code>()sortBy</code> لترتيب عناصر مصفوفة بحسب مربَّع كل عنصر:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية  <nowiki/>[[Kotlin/Array|مصفوفة]]<nowiki/>باسم <code>array</code> مكونة من ستة عناصر باستخدام الدالة <code>()arrayOf‎</code>، ثم تستخدم الدالة<code>()sort</code>  على <code>array</code> لترتيبه، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
import java.util.Arrays
 
import java.util.Arrays
  
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(1, 9, 3, 7, 5, 6)
+
    val array = arrayOf(1, -9, -3, 7, 5, 6)
 +
 
 +
    array.sortBy { it * it }
  
array.sort()
+
     print(Arrays.toString(array)) // [1, -3, 5, 6, 7, -9]
      
 
print (Arrays.toString(array)) // [1, 3, 5, 6, 7, 9]
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
===أنظر أيضًا===
+
==انظر أيضًا==
*<code>[[Kotlin/collections/sliceArray|sliceArray()]]</code>‎ : تعيد [[Kotlin/List|لائحة]] أو [[Kotlin/Array|مصفوفة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] التي استُدعيت عبرها والموجودة عند الفهارس التي يحددها الوسيط الممرّر <code>indices</code>. 
+
*الدالة <code>[[Kotlin/collections/sort|sort()]]</code>‎ : ترتب [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|القائمة المتغيرة]] (MutableList) التي استُدعيت معها تصاعديًّا.
 +
*الدالة <code>[[Kotlin/collections/sortDescending|sortDescending()‎]]</code>: ترتِّب [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|القائمة المتغيرة]] (MutableList) التي استُدعيت معها تنازليًّا. 
 +
* الدالة <code>[[Kotlin/collections/sortByDescending|sortByDescending()‎]]</code>: ترتِّب عناصر [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|القائمة المتغيرة]] (MutableList) التي استُدعيت معها تنازليًّا وفقًا للقيم التي تعيدها الدالة المُمرّرة إليها عند تطبيقها على كل عنصر.  
 +
*الدالة <code>[[Kotlin/collections/sortWith|sortWith()‎]]</code>: ترتِّب جميع عناصر [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|القائمة المتغيرة]] (MutableList) التي استُدعيت معها أو جزءًا محدَّدًا منها تنازليًا وفقًا للمُقارن المُمرّر إليها.
 +
* الدالة <code>[[Kotlin/collections/sortedBy|sortedBy()]]</code>‎: عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو القائمة المتغيرة (MutableList) التي استُدعيت معها تصاعديًّا وفقًا للقيم التي تعيدها الدالة المُمرّرة إليها عند تطبيقها على كل عنصر.
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sort.html الدالة  sortBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sort-by.html صفحة الدالة sortBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Collection]]

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

ترتِّب الدالة sortBy()‎ عناصر المصفوفة أو القائمة المتغيرة (MutableList) التي استُدعيت معها تصاعديًّا وفقًا للقيم التي تعيدها الدالة المُمرّرة إليها عند تطبيقها على كل عنصر.

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

يمكن استدعاء الدالة sortBy()‎ مع المصفوفات والقوائم المتغيرة:

inline fun <T, R : Comparable<R>> Array<out T>.sortBy(
    crossinline selector: (T) -> R?)

inline fun <T, R : Comparable<R>> MutableList<T>.sortBy(
    crossinline selector: (T) -> R?)

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

المعاملات

selector

دالة تطبق على كل قيمة من قيم المصفوفة أو القائمة المعطاة ثم تعيد قيمة مقابلة لكل عنصر من أجل ترتيب العناصر وفقًا لهذه القيم المعادة.

أمثلة

استعمال الدالة ()sortBy لترتيب عناصر مصفوفة بحسب مربَّع كل عنصر:

import java.util.Arrays

fun main(args: Array<String>) {
    val array = arrayOf(1, -9, -3, 7, 5, 6)

    array.sortBy { it * it }

    print(Arrays.toString(array)) // [1, -3, 5, 6, 7, -9]
}

انظر أيضًا

مصادر