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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>sort()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>sort()‎</code> في Kotlin}}</noinclude>
تقوم الدالة<code>sort()‎</code> بترتيب  [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|اللائحة المتغيرة]] (<code>MutableList</code>) التي استُدعيت عبرها.  
+
ترتِّب الدالة <code>sort()‎</code> [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|القائمة المتغيرة]] (MutableList) التي استُدعيت معها تصاعديًّا.  
 
 
 
==البنية العامة==
 
==البنية العامة==
في حال استدعاء الدالة  <code>sort()‎</code> عبر  [[Kotlin/Array|مصفوفة]] فستقوم بترتيبها: <nowiki/><nowiki/><syntaxhighlight lang="kotlin">
+
إن لم يمرَّر أي وسيط إلى الدالة <code>sort()‎</code>، فسترتِّب جميع عناصر المصفوفة أو [[kotlin/MutableList|القائمة المتغيرة]] التي استدعيت معها:<syntaxhighlight lang="kotlin">
 
fun IntArray.sort()  
 
fun IntArray.sort()  
 
fun LongArray.sort()  
 
fun LongArray.sort()  
سطر 13: سطر 12:
 
inline fun <T : Comparable<T>> Array<out T>.sort() (source)
 
inline fun <T : Comparable<T>> Array<out T>.sort() (source)
  
</syntaxhighlight>في حال استدعاء الدالة  <code>sort()‎</code> عبر  [[Kotlin/Array|مصفوفة]] مع تمرير معاملين عددين فستقوم بترتيب المجال المحدد بذلك المعاملين داخل [[Kotlin/Array|المصفوفة]]: <nowiki/><nowiki/><syntaxhighlight lang="kotlin">
+
fun <T : Comparable<T>> MutableList<T>.sort()
 +
 
 +
</syntaxhighlight>أمَّا إن استدعيت الدالة <code>sort()‎</code> مع تمرير وسيطين عددين، فسترتِّب المجال الذي يحدده هذين الوسيطين داخل [[Kotlin/Array|المصفوفة]] التي استدعيت معها ('''بيئة التشغيل''': JVM):<syntaxhighlight lang="kotlin">
 
fun <T> Array<out T>.sort(
 
fun <T> Array<out T>.sort(
 
     fromIndex: Int = 0,  
 
     fromIndex: Int = 0,  
سطر 25: سطر 26:
 
fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size)  
 
fun CharArray.sort(fromIndex: Int = 0, toIndex: Int = size)  
  
</syntaxhighlight>'''بيئة التشغيل: JVM'''
+
</syntaxhighlight>إن استدعيت الدالة <code>sort()‎</code> مع تمرير مًقارن <code>comparison</code> كمعامل إليها، فسترتِّب [[Kotlin/Array|المصفوفة]] التي استدعيت معها بحسب الترتيب الذي يحدده هذا المقارن <code>comparison</code>:<syntaxhighlight lang="kotlin">
 
 
في حال استدعاء الدالة  <code>sort()‎</code> عبر  كائن من النوع <code>[[kotlin/MutableList|MutableList]]</code> فستقوم بترتيبه:<syntaxhighlight lang="kotlin">
 
fun <T : Comparable<T>> MutableList<T>.sort()
 
 
 
</syntaxhighlight>في حال استدعاء الدالة  <code>sort()‎</code> عبر  [[Kotlin/Array|مصفوفة]] مع تمرير مًقارن <code>comparison</code> كمعامل فستقوم بترتيب تلك [[Kotlin/Array|المصفوفة]] بحسب الترتيب الذي يحدده المقارن <code>comparison</code>: <syntaxhighlight lang="kotlin">
 
 
inline fun <T> Array<out T>.sort(
 
inline fun <T> Array<out T>.sort(
 
     noinline comparison: (a: T, b: T) -> Int)
 
     noinline comparison: (a: T, b: T) -> Int)
سطر 48: سطر 44:
 
     noinline comparison: (a: Char, b: Char) -> Int)
 
     noinline comparison: (a: Char, b: Char) -> Int)
  
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
+
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة [[Kotlin/inline functions|الدوال المباشرة (inline functions)]]).
 
 
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()sort</code> مع المصفوفات===
+
استعمال الدالة <code>()sort</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.sort()
  
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/sortBy|sortBy()]]</code>: تقوم بترتيب  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/MutableList|اللائحة المتغيرة]] (<code>MutableList</code>) التي استُدعيت عبرها وفقًا للقيم التي تعيدها الدالة المُمرّرة . 
+
*الدالة <code>[[Kotlin/collections/sortDescending|sortDescending()‎]]</code>: ترتِّب [[Kotlin/Array|المصفوفة]] أو [[kotlin/MutableList|القائمة المتغيرة]] (MutableList) التي استُدعيت معها تنازليًّا.  
 +
*الدالة <code>[[Kotlin/collections/sortBy|sortBy()]]</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) التي استُدعيت معها أو جزءًا محدَّدًا منها تنازليًا وفقًا للمُقارن المُمرّر إليها.  
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sort.html الدالة  sort()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sort.html صفحة الدالة sort()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 18:46، 7 أغسطس 2018

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

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

إن لم يمرَّر أي وسيط إلى الدالة sort()‎، فسترتِّب جميع عناصر المصفوفة أو القائمة المتغيرة التي استدعيت معها:

fun IntArray.sort() 
fun LongArray.sort() 
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)

fun <T : Comparable<T>> MutableList<T>.sort()

أمَّا إن استدعيت الدالة sort()‎ مع تمرير وسيطين عددين، فسترتِّب المجال الذي يحدده هذين الوسيطين داخل المصفوفة التي استدعيت معها (بيئة التشغيل: JVM):

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)

إن استدعيت الدالة sort()‎ مع تمرير مًقارن comparison كمعامل إليها، فسترتِّب المصفوفة التي استدعيت معها بحسب الترتيب الذي يحدده هذا المقارن comparison:

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)

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

أمثلة

استعمال الدالة ()sort لترتيب عناصر مصفوفة:

import java.util.Arrays

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

    array.sort()

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

انظر أيضًا

مصادر