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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
 
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 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/collections/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>fromIndex</code> ===
 +
عدد صحيح يشير إلى فهرس العنصر الذي يمثل بداية المجال المراد ترتيبه.
 +
 
 +
=== <code>toIndex</code> ===
 +
عدد صحيح يشير إلى فهرس العنصر الذي يمثل نهاية المجال المراد ترتيبه (لا يدخل هذا العنصر ضمن المجال).
 +
 
 +
=== <code>comparison</code> ===
 +
المقارن الذي سترتَّب العناصر وفقًا له.
  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <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) التي استُدعيت معها أو جزءًا محدَّدًا منها تنازليًا وفقًا للمُقارن المُمرّر إليها.
 +
* الدالة <code>[[Kotlin/collections/sorted|sorted()]]</code>‎: جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو المجموعة التكرارية التي استُدعيت معها تصاعديًّا ثمَّ تضع الناتج في قائمة.
 +
* الدالة <code>[[Kotlin/collections/sortedArray|sortedArray()‎]]</code>: ترتِّب جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] التي استُدعيت معها تصاعديًّا ثمَّ تضع الناتج في مصفوفة جديدة
 
==مصادر==
 
==مصادر==
*[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 Function]]

المراجعة الحالية بتاريخ 11:09، 8 سبتمبر 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)).

المعاملات

fromIndex

عدد صحيح يشير إلى فهرس العنصر الذي يمثل بداية المجال المراد ترتيبه.

toIndex

عدد صحيح يشير إلى فهرس العنصر الذي يمثل نهاية المجال المراد ترتيبه (لا يدخل هذا العنصر ضمن المجال).

comparison

المقارن الذي سترتَّب العناصر وفقًا له.

أمثلة

استعمال الدالة ()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]
}

انظر أيضًا

مصادر