نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

القوائم list في بايثون

تمتلك بايثون عددًا من أنواع البيانات المركبة والتي تستخدم لتجميع القيم الأخرى مع بعضها البعض، والقوائم هي أوسع هذه الأنواع وأكثرها شمولًا، ويمكن كتابتها كقائمة من القيم (العناصر) المفصولة عن بعضها البعض بفواصل (،) ومحاطة بأقواس مربعة. يمكن للقوائم أن تتضمّن أنواعًا مختلفة، ولكن عادة ما تكون العناصر كلها من النوع نفسه. >>> squares = [1, 4, 9, 16, 25] >>> squares [1, 4, 9, 16, 25] فهرسة القوائم واقتطاع أجزاء منها كما هو الحال مع السلاسل النصية (والأنواع الأخرى من التسلسلات ...

CSS/Topics/List

الخاصية الوصف counter-increment تُزيد أو تُنقِص قيمة أحد عدّادات CSS بقيمة معيّنة، ويمكن إعادة تعيين العدّاد إلى رقم معيّن باستخدام الخاصية counter-reset. counter-reset تُعيد ضبط قيمة أحد عدّادات CSS إلى قيمة معيّنة، ويمكن زيادة أو إنقاص قيمة العداد باستخدام الخاصية counter-increment. list-style الخاصية list-style في CSS هي خاصية مختصرة تؤدي إلى ضبط قيم الخاصياتlist-style-type و list-style-image و list-style-position. list-style-image تُحدِّد صورةً لتُستخدَم للإشارة إلى عناصر القائمة. من المستحسن عادةً استخدام الخاصية المختصرة list-style لضبط قيمة هذه الخاصية. list-style-position تُحدِّد مكان إشارة عناصر القائمة. ومن المستحسن عادةً استخدام الخاصية المختصرة list-style. list-style-type ...

الخاصية list-style

الخاصية list-style في CSS هي خاصية مختصرة تؤدي إلى ضبط قيم الخاصيات list-style-type و list-style-image و list-style-position. بطاقة الخاصية القيمة الابتدائية لكل قيمة مختصرة: list-style-type: disc list-style-position: outside list-style-image: none تُطبَّق على عناصر القوائم. قابلة للوراثة نعم قابلة للتحريك لا القيمة المحسوبة لكل قيمة مختصرة: list-style-image: القيمة none أو رابط URI مطلق للصورة. list-style-position: كما حُدِّدَت. list-style-type: كما حُدِّدَت. /* type */ list-style: square; /* image */ list-style: url('../img/shape.png'); /* position */ list-style: inside; /* type | position */ list-style: georgian inside; /* type | image | position */ list-style: lower-roman url('../img/shape.png') outside; /* ...

الدالة list()‎‎‎‎ في PHP

(PHP 4, PHP 5, PHP 7) تُعيّن الدالة list()‎‎‎ المتغيرات كما لو كانت تشكل مصفوفة. الوصف array list ( mixed $var1 [, mixed $... ] ) مثلما هو الحال مع الدالة array()‎‎‎، تمثل الدالة list()‎‎‎‎ بنيةً من بنى اللغة تُستخدم لتمثيل قائمة من المتغيرات في عملية واحدة، وليست دالةً عاديةً. ملاحظة: تُستخدم الدالة list()‎‎‎‎ فقط مع المصفوفات الرقمية وتفترض فهارس رقمية تبدأ من 0. تحذير: في PHP 5، تبدأ الدالة list()‎‎‎‎ بتعيين القيم بدءًا من أقصى اليمين. أما في PHP 7، ...

الخاصية list-style-type

الخاصية list-style-type في CSS تُحدِّد شكل الإشارة إلى عناصر القائمة. بطاقة الخاصية القيمة الابتدائية disc تُطبَّق على عناصر القوائم. قابلة للوراثة نعم قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* قائمة مختصرة بأنواع الأشكال */ list-style-type: disc; list-style-type: circle; list-style-type: square; list-style-type: decimal; list-style-type: arabic-indic; /* <string> */ list-style-type: '-'; /* @counter-style rule */ list-style-type: custom-counter-style; list-style-type: none; /* القيم العامة */ list-style-type: inherit; list-style-type: initial; list-style-type: unset; ملاحظة: هذه الخاصية ستُطبَّق على عناصر القوائم، أي العناصر التي تكون قيمة الخاصية display فيها تساوي list-item، وهذا يتضمن العنصر <li> افتراضيًا؛ لكن لاحظ أنَّ قيمة ...

الخاصية list-style-image

الخاصية list-style-image في CSS تُحدِّد صورةً لتُستخدَم للإشارة إلى عناصر القائمة. ومن المستحسن عادةً استخدام الخاصية المختصرة list-style لضبط قيمة هذه الخاصية. بطاقة الخاصية القيمة الابتدائية none تُطبَّق على عناصر القوائم. قابلة للوراثة نعم قابلة للتحريك لا القيمة المحسوبة القيمة none أو رابط URI مطلق للصورة. /* كلمة مفتاحية */ list-style-image: none; /* <url> قيم */ list-style-image: url('starsolid.gif'); /* القيم العامة */ list-style-image: inherit; list-style-image: initial; list-style-image: unset; ملاحظة: هذه الخاصية ستُطبَّق على عناصر القوائم، أي العناصر التي تكون قيمة الخاصية display فيها تساوي list-item، وهذا يتضمن ...

الخاصية list-style-position

الخاصية list-style-position في CSS تُحدِّد مكان إشارة عناصر القائمة. ومن المستحسن عادةً استخدام الخاصية المختصرة list-style. بطاقة الخاصية القيمة الابتدائية outside تُطبَّق على عناصر القوائم. قابلة للوراثة نعم قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* كلمات مفتاحية */ list-style-position: inside; list-style-position: outside; /* القيم العامة */ list-style-position: inherit; list-style-position: initial; list-style-position: unset; ملاحظة: هذه الخاصية ستُطبَّق على عناصر القوائم، أي العناصر التي تكون قيمة الخاصية display فيها تساوي list-item، وهذا يتضمن العنصر <li> افتراضيًا؛ لكن لاحظ أنَّ قيمة هذه الخاصية قابلة للوراثة، أي يمكن ضبطها ...

المجموعات (Collections): القائمة (List) والمجموعة (Set) و الخارطة (Map) في لغة Kotlin

تُميِّز لغة Kotlin (على خلاف العديد من لغات البرمجة) بين المجموعة المتغيّرة (mutable) والثابتة (immutable)، وتساهم قدرتُها على التحكُّم الدقيق في الحالات التي يُسمَح فيها بتعديل المجموعات في التقليل من الأخطاء البرمجية (bugs) وتحقيق تصميمٍ أفضل لواجهات API. ومن المهمِّ معرفة الفوارق ما بين العرض (view) الثابت للقراءة فقط (read-only) للمجموعة المتغيّرة والمجموعة الثابتة الفعليّة، إذ من السهل إنشاء كلِّ منهما ولكن نظام الأنواع في Kotlin لا يوضّح الفرق بينهما، ويقع ذلك على عاتق المتعلِّم. يُعدُّ النوع List<out T>‎ في ...

القائمة الطويلة للمعاملات (Long Parameter List)

توصيف المشكلة وجود ما يزيد عن ثلاثة أو أربعة معاملات (parameters) مُمرَّرة للتابع (method). أسبابها قد تحدث هذه المشكلة عند دمج عدّة خوارزمياتٍ بنفس التابع (method)، إذ تُستخدَم المعاملات (parameters) الكثيرة لتحديد الخوارزمية التي ستُنفَّذ وآليّتها. أو قد تنتج المشكلة عن محاولة المبرمج أو المطوِّر لجعل الأصناف (classes) أكثر استقلاليةً عن بعضها البعض. فمثلًا: عند نقل الشيفرة التي تنشِئ الكائنات (objects) -اللازمة لأحد التوابع- من داخل التابع إلى الشيفرة التي تستدعي ذلك التابع سيتطلَّبُ تمرير تلك الكائنات إلى التابع كمعاملاتٍ ...

الخاصية ‎‎lastIndex في Kotlin

تُستخدَم هذه الخاصيّة للحصول على الفهرس (index) الأخير للمصفوفة أو القائمة (list)، أو القيمة ‎-1 إن كانت المصفوفة أو القائمة فارغةً. البنية العامة توفّر لغة Kotlin الخاصيّة lastIndex للمصفوفات من الأنواع المختلفة كما يلي: val <T> Array<out T>.lastIndex: IntRange val ByteArray.lastIndex: IntRange val ShortArray.lastIndex: IntRange val IntArray.lastIndex: IntRange val LongArray.lastIndex: IntRange val FloatArray.lastIndex: IntRange val DoubleArray.lastIndex: IntRange val BooleanArray.lastIndex: IntRange val CharArray.lastIndex: IntRange وكذلك للقائمة (list): val <T> List<T>.lastIndex: Int القيم المعادة يعاد الفهرس الأخير للمصفوفة أو القائمة، أو القيمة ‎-1 إن كانت المصفوفة أو القائمة فارغة. أمثلة استخدام ...

الدالة reversed()‎ في Kotlin

تُعيد الدالة reversed()‎ قائمة تضم عناصر المصفوفة أو المجموعة التي استُدعيت معها بترتيب معكوس. البنية العامة fun <T> Array<out T>.reversed(): List<T> fun ByteArray.reversed(): List<Byte> fun ShortArray.reversed(): List<Short> fun IntArray.reversed(): List<Int> fun LongArray.reversed(): List<Long> fun FloatArray.reversed(): List<Float> fun DoubleArray.reversed(): List<Double> fun BooleanArray.reversed(): List<Boolean> fun CharArray.reversed(): List<Char> fun <T> Iterable<T>.reversed(): List<T> القيم المعادة تعاد قائمة تضم عناصر المصفوفة أو المجموعة المعطاة بترتيب معكوس. أمثلة استعمال الدالة ()reversed لعكس ترتيب عناصر قائمة: fun main(args: Array<String>) { var list = listOf(1, 2, 3, ...

الدالة asList()‎ في Kotlin

تُعيد الدالة asList()‎ قائمةً (list) تُغلّف المصفوفة الأصلية التي استُدعيت عبرها. البنية العامة تختلف بحسب نوع المصفوفة: fun <T> Array<out T>.asList(): List<T> fun ByteArray.asList(): List<Byte> fun ShortArray.asList(): List<Short> fun IntArray.asList(): List<Int> fun LongArray.asList(): List<Long> fun FloatArray.asList(): List<Float> fun DoubleArray.asList(): List<Double> fun BooleanArray.asList(): List<Boolean> fun CharArray.asList(): List<Char> القيم المعادة قائمة (list) تُغلّف المصفوفة الأصلية التي استُدعيت عبرها. أمثلة تعرِّف الشيفرة الآتية مصفوفةً باسم array مكوَّنة من حرفين باستخدام الدالة ()arrayOf، ثم تنشئ قائمةً باسم list من المصفوفة array وذلك باستخدام الدالة ()asList ...

التحقق من الأنواع (Type Check) والتحويل بينها (Casting) في لغة Kotlin

المعاملين is و ‎!is تدعم لغة Kotlin ميّزة التحقُّق من توافق الكائن مع أحد الأنواع أثناء التنفيذ، وذلك بالاعتماد على المُعامِل is أو صيغته المنفيّة ‎!is كما في الشيفرة: if (obj is String) { print(obj.length) } if (obj !is String) { // !(obj is String) مكافئ للصيغة print("Not a String") } else { print(obj.length) } التحويلات الذكية (Smart Casts) لا حاجة في كثيرٍ من الأحيان لجعل التحويل صريحًا (explicit) في لغة Kotlin لأنّ المترجم (compiler) يتتبَّع ...

الدالة distinct()‎ في Kotlin

تحذف الدالة distinct()‎ العناصر المتكررة الموجودة في المصفوفة أو المجموعة التي استُدعيت معها وتعيد الناتج في قائمة. تُرتَّب العناصر في القائمة الناتجة بنفس ترتيبها في المصفوفة أو المجموعة الأصليَّة. البنية العامة تستدعى الدالة distinct()‎ مع مصفوفة: fun <T> Array<out T>.distinct(): List<T> fun ByteArray.distinct(): List<Byte> fun ShortArray.distinct(): List<Short> fun IntArray.distinct(): List<Int> fun LongArray.distinct(): List<Long> fun FloatArray.distinct(): List<Float> fun DoubleArray.distinct(): List<Double> fun BooleanArray.distinct(): List<Boolean> fun CharArray.distinct(): List<Char> وتستدعى مع مجموعة: fun <T> Iterable<T>.distinct(): List<T> القيم المعادة تُعاد قائمة تحتوي على عناصر المصفوفة ...

الدالة partition()‎ في Kotlin

تقسم الدالة 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 ): ...

الدالة requireNoNulls()‎ في Kotlin

تعيد الدالة requireNoNulls()‎ العناصر غير المعدومة (non-null) من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها أو ترمي استثناءً إن وجد عنصر معدوم (null). البنية العامة fun <T : Any> Array<T?>.requireNoNulls(): Array<T> fun <T : Any> Iterable<T?>.requireNoNulls(): Iterable<T> fun <T : Any> List<T?>.requireNoNulls(): List<T> القيم المعادة تعاد المصفوفة أو المجموعة أو القائمة المعطاة نفسها إن لم يكن فيها أي عنصر معدوم أو يرمى الاستثناء IllegalArgumentException إن وجد أي عنصر معدوم. أمثلة استعمال الدالة ()requireNoNulls مع قائمة لا تحتوي على أي عنصر معدوم: fun ...

الدالة dropLast()‎ في Kotlin

تعيد الدالة dropLast()‎ قائمة تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء آخر n عنصر. البنية العامة fun <T> Array<out T>.dropLast(n: Int): List<T> fun ByteArray.dropLast(n: Int): List<Byte> fun ShortArray.dropLast(n: Int): List<Short> fun IntArray.dropLast(n: Int): List<Int> fun LongArray.dropLast(n: Int): List<Long> fun FloatArray.dropLast(n: Int): List<Float> fun DoubleArray.dropLast(n: Int): List<Double> fun BooleanArray.dropLast(n: Int): List<Boolean> fun CharArray.dropLast(n: Int): List<Char> fun <T> List<T>.dropLast(n: Int): List<T> المعاملات n عدد صحيح يمثل عدد العناصر المراد حذفها من نهاية المصفوفة أو المجموعة المعطاة. القيم المعادة تُعاد ...

الدالة takeLastWhile()‎ في Kotlin

تجلب الدالة takeLastWhile()‎ آخر عناصر محققة لشرطٍ محدَّدٍ من المصفوفة أو القائمة التي استُدعيت معها. البنية العامة inline fun <T> Array<out T>.takeLastWhile( predicate: (T) -> Boolean ): List<T> inline fun ByteArray.takeLastWhile( predicate: (Byte) -> Boolean ): List<Byte> inline fun ShortArray.takeLastWhile( predicate: (Short) -> Boolean ): List<Short> inline fun IntArray.takeLastWhile( predicate: (Int) -> Boolean ): List<Int> inline fun LongArray.takeLastWhile( predicate: (Long) -> Boolean ): List<Long> inline fun FloatArray.takeLastWhile( predicate: (Float) -> ...

الدالة slice()‎ في Kotlin

تقطع الدالة slice()‎ جزءًا محدَّدًا من المصفوفة أو القائمة التي استُدعيت معها ثمَّ تعيده في قائمة. البنية العامة يمكن تمرير مجال محدَّد إلى الدالة slice()‎ كوسيط: fun <T> Array<out T>.slice(indices: IntRange): List<T> fun ByteArray.slice(indices: IntRange): List<Byte> fun ShortArray.slice(indices: IntRange): List<Short> fun IntArray.slice(indices: IntRange): List<Int> fun LongArray.slice(indices: IntRange): List<Long> fun FloatArray.slice(indices: IntRange): List<Float> fun DoubleArray.slice(indices: IntRange): List<Double> fun BooleanArray.slice(indices: IntRange): List<Boolean> fun CharArray.slice(indices: IntRange): List<Char> fun <T> List<T>.slice(indices: IntRange): List<T> أو يمكن تمرير كائن من النوع Iterable إلى الدالة slice()‎ كوسيط: fun <T> Array<out T>.slice(indices: Iterable<Int>): ...

الدالة drop()‎ في Kotlin

تعيد الدالة drop()‎ قائمة تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء أول n عنصر. البنية العامة fun <T> Array<out T>.drop(n: Int): List<T> fun ByteArray.drop(n: Int): List<Byte> fun ShortArray.drop(n: Int): List<Short> fun IntArray.drop(n: Int): List<Int> fun LongArray.drop(n: Int): List<Long> fun FloatArray.drop(n: Int): List<Float> fun DoubleArray.drop(n: Int): List<Double> fun BooleanArray.drop(n: Int): List<Boolean> fun CharArray.drop(n: Int): List<Char> fun <T> Iterable<T>.drop(n: Int): List<T> المعاملات n عدد صحيح يمثل عدد العناصر المراد حذفها من بداية المصفوفة أو المجموعة المعطاة. القيم المعادة تُعاد قائمة ...

الدالة takeLast()‎ في Kotlin

تجلب الدالة takeLast()‎ آخر n عنصر من المصفوفة أو المجموعة التكرارية التي استُدعيت معها وتضعها في قائمة.  البنية العامة fun <T> Array<out T>.takeLast(n: Int): List<T> fun ByteArray.takeLast(n: Int): List<Byte> fun ShortArray.takeLast(n: Int): List<Short> fun IntArray.takeLast(n: Int): List<Int> fun LongArray.takeLast(n: Int): List<Long> fun FloatArray.takeLast(n: Int): List<Float> fun DoubleArray.takeLast(n: Int): List<Double> fun BooleanArray.takeLast(n: Int): List<Boolean> fun CharArray.takeLast(n: Int): List<Char> fun <T> List<T>.takeLast(n: Int): List<T> المعاملات n عدد صحيح يمثل عدد العناصر الأخيرة المراد جلبها من المصفوفة أو المجموعة التكرارية المعطاة. إن كانت القيمة المعطاة لهذا المعامل أكبر من طول المصفوفة أو المجموعة التكرارية، فستعاد ...

الدالة takeWhile()‎ في Kotlin

تجلب الدالة takeWhile()‎ أول عناصر محققة لشرطٍ محدَّدٍ من المصفوفة أو القائمة التي استُدعيت معها.  البنية العامة inline fun <T> Array<out T>.takeWhile( predicate: (T) -> Boolean ): List<T> inline fun ByteArray.takeWhile( predicate: (Byte) -> Boolean ): List<Byte> inline fun ShortArray.takeWhile( predicate: (Short) -> Boolean ): List<Short> inline fun IntArray.takeWhile( predicate: (Int) -> Boolean ): List<Int> inline fun LongArray.takeWhile( predicate: (Long) -> Boolean ): List<Long> inline fun FloatArray.takeWhile( predicate: (Float) ...

الدالة unzip()‎ في Kotlin

تعيد الدالة unzip()‎ قائمتين، إذ تحتوي الأولى على القيم الأولى لكل زوج من أزواج المصفوفة أو المجموعة التكرارية التي استُدعيت معها وتحتوي الثانية على القيم الثانية لكل زوج من تلك الأزواج. البنية العامة يمكن استدعاء الدالة unzip()‎ مع المصفوفات والمجموعات التكرارية: fun <T, R> Array<out Pair<T, R>>.unzip(): Pair<List<T>, List<R>> fun <T, R> Iterable<Pair<T, R>>.unzip(): Pair<List<T>, List<R>> القيمة المعادة تعاد قائمتين؛ تحتوي الأولى على القيم الأولى لكل زوج من أزواج المصفوفة أو المجموعة التكرارية المعطاة وتحتوي الثانية على القيم الثانية لكل ...

الدالة sortedDescending()‎ في Kotlin

ترتِّب الدالة sortedDescending()‎ جميع عناصر المصفوفة أو المجموعة التكرارية التي استُدعيت معها تنازليًّا ثمَّ تضع الناتج في قائمة. البنية العامة fun <T : Comparable<T>> Array<out T>.sortedDescending(): List<T> fun ByteArray.sortedDescending(): List<Byte> fun ShortArray.sortedDescending(): List<Short> fun IntArray.sortedDescending(): List<Int> fun LongArray.sortedDescending(): List<Long> fun FloatArray.sortedDescending(): List<Float> fun DoubleArray.sortedDescending(): List<Double> fun CharArray.sortedDescending(): List<Char> fun <T : Comparable<T>> Iterable<T>.sortedDescending(): List<T> القيمة المعادة تُعاد قائمة تضم عناصر المصفوفة أو المجموعة التكرارية المعطاة بعد ترتيبها تنازليًّا. أمثلة استعمال الدالة ()sortedDescending لترتيب عناصر مصفوف تنازليًّا: fun main(args: Array<String>) { val array = arrayOf(1, ...

الدالة sorted()‎ في Kotlin

ترتِّب الدالة sorted()‎ جميع عناصر المصفوفة أو المجموعة التكرارية التي استُدعيت معها تصاعديًّا ثمَّ تضع الناتج في قائمة. البنية العامة fun <T : Comparable<T>> Array<out T>.sorted(): List<T> fun ByteArray.sorted(): List<Byte> fun ShortArray.sorted(): List<Short> fun IntArray.sorted(): List<Int> fun LongArray.sorted(): List<Long> fun FloatArray.sorted(): List<Float> fun DoubleArray.sorted(): List<Double> fun CharArray.sorted(): List<Char> fun <T : Comparable<T>> Iterable<T>.sorted(): List<T> القيمة المعادة تُعاد قائمة تضم عناصر المصفوفة أو المجموعة التكرارية المعطاة بعد ترتيبها تصاعديًّا. أمثلة استعمال الدالة ()sorted لترتيب عناصر مصفوفة تصاعديًّا: fun main(args: Array<String>) { val array = ...

الدالة distinctBy()‎ في Kotlin

تعيد الدالة distinctBy()‎ قائمة تحتوي على العناصر الموجودة في المصفوفة أو المجموعة التي استُدعيت معها والتي تعطي نتيجة مختلفة عند تطبيق الدالة selector عليها فقط. تُرتَّب العناصر في القائمة الناتجة بنفس ترتيبها في المصفوفة أو المجموعة الأصليَّة. البنية العامة تستدعى الدالة distinctBy()‎ مع مصفوفة: inline fun <T, K> Array<out T>.distinctBy( selector: (T) -> K ): List<T> inline fun <K> ByteArray.distinctBy( selector: (Byte) -> K ): List<Byte> inline fun <K> ShortArray.distinctBy( selector: (Short) -> ...

الدالة take()‎ في Kotlin

تجلب الدالة take()‎ أول n عنصر من المصفوفة أو المجموعة التكرارية التي استُدعيت معها وتضعها في قائمة. البنية العامة fun <T> Array<out T>.take(n: Int): List<T> fun ByteArray.take(n: Int): List<Byte> fun ShortArray.take(n: Int): List<Short> fun IntArray.take(n: Int): List<Int> fun LongArray.take(n: Int): List<Long> fun FloatArray.take(n: Int): List<Float> fun DoubleArray.take(n: Int): List<Double> fun BooleanArray.take(n: Int): List<Boolean> fun CharArray.take(n: Int): List<Char> fun <T> Iterable<T>.take(n: Int): List<T> المعاملات n عدد صحيح يمثل عدد العناصر الأولى المراد جلبها من المصفوفة أو المجموعة التكرارية المعطاة. إن كانت القيمة المعطاة لهذا المعامل ...

الإضافات (Extensions) في لغة Kotlin

الإضافات (Extensions) توفِّر لغة Kotlin -كما هو الحال في لغات البرمجة مثل C#‎ و Gosu- إمكانيّة الإضافة على الأصناف (classes) بوظائف جديدةٍ دون اللجوء إلى الوراثة (inheritance) منها أو استخدام أيّ أنماطٍ تصميميّةٍ مثل Secorator، وذلك من خلال تصريحات خاصّة تُدعى الإضافات (extensions)، إذ تدعم لغة Kotlin الدوال الإضافيّة (extension functions) والخاصّيّات الإضافيّة (extension properties). الدوال الإضافيّة (Extension Functions) لتعريف دالةٍ إضافيّةٍ يجب أن يُسبَق اسمها بنوع المستقبِل (receiver type) أي النوع الذي ستتمّ الإضافة عليه، ففي الشيفرة الآتية تُضاف ...

الدالة dropLastWhile()‎ في Kotlin

تعيد الدالة dropLastWhile()‎ قائمةً تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء العناصر الأخيرة التي تحقق شرطًا معيَّنًا. البنية العامة inline fun <T> Array<out T>.dropLastWhile( predicate: (T) -> Boolean ): List<T> inline fun ByteArray.dropLastWhile( predicate: (Byte) -> Boolean ): List<Byte> inline fun ShortArray.dropLastWhile( predicate: (Short) -> Boolean ): List<Short> inline fun IntArray.dropLastWhile( predicate: (Int) -> Boolean ): List<Int> inline fun LongArray.dropLastWhile( predicate: (Long) -> Boolean ): List<Long> inline fun ...

الدالة flatMap()‎ في Kotlin

تعيد الدالة flatMap()‎ قائمةً تضم ناتج تطبيق الدالة المُمرّرة إليها على عناصر المصفوفة، أو المجموعة، أو الخريطة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة flatMap()‎ مع المصفوفات: inline fun <T, R> Array<out T>.flatMap( transform: (T) -> Iterable<R> ): List<R> inline fun <R> ByteArray.flatMap( transform: (Byte) -> Iterable<R> ): List<R> inline fun <R> ShortArray.flatMap( transform: (Short) -> Iterable<R> ): List<R> inline fun <R> IntArray.flatMap( transform: (Int) -> Iterable<R> ): List<R> inline fun ...

الأنواع المُعمَّمة (Generics) في لغة Kotlin

معاملات الأنواع (Type Parameters) قد تحتوي الأصناف (classes) -كما هو الحال في لغة Java- على معاملات للأنواع (type parameters) مثل: class Box<T>(t: T) { var value = t } ولإنشاء كائنٍ (instance) من هذا الصنف يجب تحديد النوع كما في الشيفرة الآتية: val box: Box<Int> = Box<Int>(1) أمّا إن كان بالإمكان معرفة (infer) المعاملات إمّا من خلال معاملات الباني (constructor arguments) أو بأيّ وسيلةٍ أخرى فيمكن حينئذٍ حذف نوع المعاملات، مثل: val box = Box(1) // القيمة 1 لها ...

الدالة sortedWith()‎ في Kotlin

ترتِّب الدالة sortedWith()‎ جميع عناصر المصفوفة أو المجموعة التكرارية التي استُدعيت معها وفقًا للمُقارِن المُمرّر إليها ثمَّ تضع الناتج في قائمة. البنية العامة fun <T> Array<out T>.sortedWith( comparator: Comparator<in T> ): List<T> fun ByteArray.sortedWith( comparator: Comparator<in Byte> ): List<Byte> fun ShortArray.sortedWith( comparator: Comparator<in Short> ): List<Short> fun IntArray.sortedWith( comparator: Comparator<in Int> ): List<Int> fun LongArray.sortedWith( comparator: Comparator<in Long> ): List<Long> fun FloatArray.sortedWith( comparator: Comparator<in Float> ): List<Float> fun DoubleArray.sortedWith( ...

الدالة dropWhile()‎ في Kotlin

تعيد الدالة dropWhile()‎ قائمةً تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء العناصر الأولى التي تحقق شرطًا معيَّنًا. البنية العامة inline fun <T> Array<out T>.dropWhile( predicate: (T) -> Boolean ): List<T> inline fun ByteArray.dropWhile( predicate: (Byte) -> Boolean ): List<Byte> inline fun ShortArray.dropWhile( predicate: (Short) -> Boolean ): List<Short> inline fun IntArray.dropWhile( predicate: (Int) -> Boolean ): List<Int> inline fun LongArray.dropWhile( predicate: (Long) -> Boolean ): List<Long> inline ...

الدالة reverse()‎ في Kotlin

تعكس الدالة reverse()‎ ترتيب عناصر المصفوفة أو القائمة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة reverse()‎ مع المصفوفات: fun <T> Array<T>.reverse() fun ByteArray.reverse() fun ShortArray.reverse() fun IntArray.reverse() fun LongArray.reverse() fun FloatArray.reverse() fun DoubleArray.reverse() fun BooleanArray.reverse() fun CharArray.reverse() ويمكن استدعاؤها مع القوائم المتغيرة (MutableList): fun <T> MutableList<T>.reverse() أمثلة استعمال الدالة ()reverse لعكس ترتيب عناصر قائمة: fun main(args: Array<String>) { var list = MutableList(6) { it } // [0, 1, 2, 3, 4, 5] list.reverse() print(list) ...

الدالة CharSequence.flatMapTo()‎ في Kotlin

تشبه الدالة flatMapTo()‎ الدالة flatMap()‎ تمامًا باستثناء أنها تضيف الناتج المعاد إلى كائن موجود مسبقًا بدلًا من إعادته فقط. البنية العامة inline fun <R, C : MutableCollection<in R>> CharSequence.flatMapTo( destination: C, transform: (Char) -> Iterable<R> ): C وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات destination مجموعة قابلة للتغيير (MutableCollection‎) تمثل الوجهة التي سيضاف إليها الناتج. transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة، وتعيد ...

الدالة map()‎ في Kotlin

تعيد الدالة map()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة map()‎ مع المصفوفات والمجموعات والخرائط: inline fun <T, R> Array<out T>.map( transform: (T) -> R ): List<R> inline fun <R> ByteArray.map(transform: (Byte) -> R): List<R> inline fun <R> ShortArray.map( transform: (Short) -> R ): List<R> inline fun <R> IntArray.map(transform: (Int) -> R): List<R> inline fun <R> LongArray.map(transform: (Long) ...

الدالة toList()‎ في Kotlin

تحول الدالة toList()‎ المصفوفة أو المجموعة التكرارية أو الخريطة التي استُدعيت معها إلى قائمة. البنية العامة يمكن استدعاء الدالة toList()‎ مع المصفوفات أو المجموعات التكرارية أو الخرائط: fun <T> Array<out T>.toList(): List<T> fun ByteArray.toList(): List<Byte> fun ShortArray.toList(): List<Short> fun IntArray.toList(): List<Int> fun LongArray.toList(): List<Long> fun FloatArray.toList(): List<Float> fun DoubleArray.toList(): List<Double> fun BooleanArray.toList(): List<Boolean> fun CharArray.toList(): List<Char> fun <T> Iterable<T>.toList(): List<T> fun <K, V> Map<out K, V>.toList(): List<Pair<K, V>> القيمة المعادة تعاد قائمة تحوي جميع عناصر المصفوفة أو المجموعة التكرارية أو جميع أزواج ...

الدالة mapIndexed()‎ في Kotlin

تعيد الدالة mapIndexed()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة mapIndexed()‎ مع المصفوفات والمجموعات: inline fun <T, R> Array<out T>.mapIndexed( transform: (index: Int, T) -> R ): List<R> inline fun <R> ByteArray.mapIndexed( transform: (index: Int, Byte) -> R ): List<R> inline fun <R> ShortArray.mapIndexed( transform: (index: Int, Short) -> R ): List<R> inline fun <R> IntArray.mapIndexed( ...

الدالة filterIndexed()‎ في Kotlin

ترشِّح الدالة filterIndexed()‎ عناصر المصفوفة أو المجموعة المعطاة بناءً على فهرس العنصر وقيمته. البنية العامة inline fun <T> Array<out T>.filterIndexed( predicate: (index: Int, T) -> Boolean ): List<T> inline fun ByteArray.filterIndexed( predicate: (index: Int, Byte) -> Boolean ): List<Byte> inline fun ShortArray.filterIndexed( predicate: (index: Int, Short) -> Boolean ): List<Short> inline fun IntArray.filterIndexed( predicate: (index: Int, Int) -> Boolean ): List<Int> inline fun LongArray.filterIndexed( predicate: (index: Int, Long) -> ...

الدالة zipWithNext()‎ في Kotlin

تنشئ الدالة zipWithNext()‎ أزواجًا من محارف السلسلة التي استدعيت معها والمحارف التي لها الفهرس التالي من السلسلة الممررة إليها، أو تنشئ قيمًا ناتجة عن تمرير تلك الأزواج إلى دالة معينة. البنية العامة fun CharSequence.zipWithNext(): List<Pair<Char, Char>> الإصدار المطلوب: Kotlin 1.2. إن استدعيت الدالة zipWithNext()‎ مع سلسلة من المحارف ومع تمرير سلسلة أخرى إليها كمعامل، فستشكل أزواجًا من محارف السلسلة المعطاة التي لها فهرس معين ومحارف السلسلة other التي لها الفهرس التالي وتضعها في قائمة؛ طول القائمة المعادة يساوي طول أٌقصرهما. inline fun <R> CharSequence.zipWithNext( transform: (a: Char, b: ...

الدالة CharSequence.chunked()‎ في Kotlin

تقطِّع الدالة chunked()‎ سلسلة المحارف التي استُدعيت معها إلى عدة أجزاء لا يتجاوز كل منها حجمًا معينًا وتعيدها في قائمة أو تطبِّق دالة معينة على كل منها وتضع الناتج الذي تعيده هذه الدالة في قائمة. البنية العامة fun CharSequence.chunked(size: Int): List<String> fun <R> CharSequence.chunked( size: Int, transform: (CharSequence) -> R ): List<R> بيئة التشغيل المطلوبة: Kotlin 1.2. المعاملات size عدد صحيح يمثل عدد العناصر المراد اقتطاعها ووضعها في كل سلسلة نصية. يجب أن يكون هذا ...

الدالة sortedBy()‎ في Kotlin

ترتِّب الدالة sortedBy()‎ جميع عناصر المصفوفة أو المجموعة التكرارية (Iterable) التي استُدعيت معها تصاعديًّا وفقًا للقيم التي تعيدها الدالة المُمرّرة إليها عند تطبيقها على كل عنصر ثمَّ تضع الناتج في قائمة. البنية العامة inline fun <T, R : Comparable<R>> Array<out T>.sortedBy( crossinline selector: (T) -> R? ): List<T> inline fun <R : Comparable<R>> ByteArray.sortedBy( crossinline selector: (Byte) -> R? ): List<Byte> inline fun <R : Comparable<R>> ShortArray.sortedBy( crossinline selector: (Short) -> R? ): List<Short> inline fun <R ...

الدالة sortedByDescending()‎ في Kotlin

ترتِّب الدالة sortedByDescending()‎ جميع عناصر المصفوفة أو المجموعة التكرارية (Iterable) التي استُدعيت معها تنازليًّا وفقًا للقيم التي تعيدها الدالة المُمرّرة إليها عند تطبيقها على كل عنصر ثمَّ تضع الناتج في قائمة. البنية العامة inline fun <T, R : Comparable<R>> Array<out T>.sortedByDescending( crossinline selector: (T) -> R? ): List<T> inline fun <R : Comparable<R>> ByteArray.sortedByDescending( crossinline selector: (Byte) -> R? ): List<Byte> inline fun <R : Comparable<R>> ShortArray.sortedByDescending( crossinline selector: (Short) -> R? ): List<Short> inline fun <R ...

الدالة filterIsInstance()‎ في Kotlin

تعيد الدالة filterIsInstance()‎ قائمة تحوي عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن. البنية العامة inline fun <reified R> Array<*>.filterIsInstance(): List<R> inline fun <reified R> Iterable<*>.filterIsInstance(): List<R> يمكن تمرير المعامل klass إلى الدالة filterIsInstance()‎: fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R> fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R> بيئة التشغيل المطلوبة: JVM وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع توثيق الدوال المباشرة)، واستخدام الكلمة المفتاحية reified يسمح بالوصول إلى نوعٍ مُمرَّر كمتحولٍ وسيطٍ (parameter، راجع توثيق reified ...

الدالة filter()‎ في Kotlin

ترشِّح الدالة filter()‎ عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها. البنية العامة يمكن استدعاء الدالة filter()‎ مع المصفوفات والمجموعات: inline fun <T> Array<out T>.filter( predicate: (T) -> Boolean ): List<T> inline fun ByteArray.filter( predicate: (Byte) -> Boolean ): List<Byte> inline fun ShortArray.filter( predicate: (Short) -> Boolean ): List<Short> inline fun IntArray.filter( predicate: (Int) -> Boolean ): List<Int> inline fun LongArray.filter( predicate: (Long) ...

الدالة filterNot()‎ في Kotlin

تعيد الدالة filterNot()‎ قائمةً تحوي عناصر المصفوفة أو المجموعة التي لم تحقق شرطًا منطقيًّا محدَّدًا. إن استدعيت مع خريطة (map)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي. تحافظ هذه الخريطة الجديد على ترتيب تكرار المدخلات (entry iteration order) كما في الخريطة الأصلية. البنية العامة يمكن استدعاء الدالة filterNot()‎ مع المصفوفات أو المجموعات: inline fun <T> Array<out T>.filterNot( predicate: (T) -> Boolean ): List<T> inline fun ByteArray.filterNot( predicate: (Byte) -> Boolean ): List<Byte> ...

الدالة flatten()‎ في Kotlin

تعيد الدالة 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( ...

أمان القيم الفارغة (Null) في لغة Kotlin

الأنواع Nullable والأنواع Non-Null يهدف نظام الأنواع في Kotlin إلى الحدِّ من أخطار القيمة الفارغة null في الشيفرات، إذ إنّ أحد الأخطاء الأكثر شيوعًا في لغات البرمجة -بما فيها لغة Java- هو أنّ محاولة الوصول إلى مرجعيّةٍ تحتوي على القيمة null سيؤدي إلى حدوث استثناءٍ مرجعيّ (reference exception)، ويُدعى هذا الاستثناء في لغة Java باسم NullPointerException أو NPE اختصارًا، أمّا Kotlin فهي تحدُّ من هذا الاستثناء ليقتصر على الحالات الآتية: استدعاءٌ صريحٌ بالشكل: throw NullPointerException()‎ استخدام المعامل !! (كما سيُشرح لاحقًا) ...

الدالة toCollection()‎ في Kotlin

تضيف الدالة toCollection()‎ كل محارف السلسلة التي استٌدعيت معها إلى المجموعة المتغيرة المُمرّرة إليها. البنية العامة fun <C : MutableCollection<in Char>> CharSequence.toCollection( destination: C ): C المعاملات مجموعة متغيرة يراد أن يضاف فيها محتوى سلسلة المحارف المعطاة. القيم المعادة يعاد المعامل destination بعد إضافة محتوى سلسلة المحارف المعطاة إليه. أمثلة مثالٌ على استعمال الدالة toCollection()‎: fun main(args: Array<String>) { val list: MutableList<Char> = mutableListOf() val str = "wikiHsoub" str.toCollection(list) ...

الدالة flatMapTo()‎ في Kotlin

تشبه الدالة flatMapTo()‎ الدالة flatMap()‎ تمامًا باستثناء أنها تضيف الناتج المعاد إلى كائن موجود مسبقًا بدلًا من إعادته فقط. البنية العامة يمكن استدعاء الدالة flatMapTo()‎ مع المصفوفات: inline fun <T, R, C : MutableCollection<in R>> Array<out T>.flatMapTo( destination: C, transform: (T) -> Iterable<R> ): C inline fun <R, C : MutableCollection<in R>> ByteArray.flatMapTo( destination: C, transform: (Byte) -> Iterable<R> ): C inline fun <R, C : MutableCollection<in R>> ShortArray.flatMapTo( ...

الدالة filterIndexed()‎ في Kotlin

ترشِّح الدالة filterIndexed()‎ محارف سلسلة المحارف أو السلسلة النصية المعطاة بناءً على فهرس المحرف وقيمته. البنية العامة inline fun CharSequence.filterIndexed( predicate: (index: Int, Char) -> Boolean ): CharSequence inline fun String.filterIndexed( predicate: (index: Int, Char) -> Boolean ): String وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (لمزيد من التفاصيل، راجع توثيق الدوال المباشرة). المعاملات predicate دالةٌ تمثل الشرط المراد تطبيقه على كل محرف من محارف السلسلة النصية أو سلسلة المحارف المعطاة. يمرر إلى هذه الدالة فهرس المحرف وقيمته أيضًا وتعيد قيمة ...

الدالة average()‎ في Kotlin

تحسب الدالة average()‎ متوسط (average) عناصر المصفوفة أو المجموعة (Collection) المعطاة لها. البنية العامة يمكن استدعاء الدالة average()‎ مع المصفوفات: @JvmName("averageOfByte") fun Array<out Byte>.average(): Double @JvmName("averageOfShort") fun Array<out Short>.average(): Double @JvmName("averageOfInt") fun Array<out Int>.average(): Double @JvmName("averageOfLong") fun Array<out Long>.average(): Double @JvmName("averageOfFloat") fun Array<out Float>.average(): Double @JvmName("averageOfDouble") fun Array<out Double>.average(): Double fun ByteArray.average(): Double fun ShortArray.average(): Double fun IntArray.average(): Double fun LongArray.average(): Double fun FloatArray.average(): Double fun DoubleArray.average(): Double ويمكن استدعاؤها مع المجموعات: @JvmName("averageOfByte") fun Iterable<Byte>.average(): Double @JvmName("averageOfShort") fun Iterable<Short>.average(): Double @JvmName("averageOfInt") fun ...

الدالة component1()‎ في Kotlin

تعيد الدالة component1()‎ العنصر الأول من المصفوفة أو المفتاح (key) لأول زوج (مفتاح/قيمة) في الخريطة (map) التي استدعيت معها. تسمح هذه الدالة باستخدام التصريحات التفكيكية (destructuring declarations) عند العمل على الخرائط.  البنية العامة يمكن استدعاء الدالة component1()‎ مع المصفوفات والقوائم (list): inline operator fun <T> Array<out T>.component1(): T inline operator fun ByteArray.component1(): Byte inline operator fun ShortArray.component1(): Short inline operator fun IntArray.component1(): Int inline operator fun LongArray.component1(): Long inline operator fun FloatArray.component1(): Float inline operator fun DoubleArray.component1(): Double inline operator fun ...

الدالة CharSequence.mapTo()‎ في Kotlin

تشبه الدالة mapTo()‎ الدالة map()‎ باستثناء أنَّها تضيف الناتج المعاد إلى المعامل المُمرَّر إليها بدلًا من وضعه في قائمة. البنية العامة inline fun <R, C : MutableCollection<in R>> CharSequence.mapTo( destination: C, transform: (Char) -> R ): C وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع توثيق الدوال المباشرة (inline functions)). المعاملات destination مجموعة متغيرة تمثل الوجهة التي سيضاف إليها الناتج الذي تعيده الدالة transform. transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها محرفٌ ...

الدالة split()‎ في Kotlin

تقتطع الدالة split()‎ المحارف الموجودة بين الأجزاء المتطابقة مع تعبير نمطي معين أو بين سلاسل نصية أو محارف معينة في سلسلة المحارف الممررة إليها وتعيدها في قائمة. البنية العامة fun CharSequence.split( regex: Pattern, limit: Int = 0 ): List<String> inline fun CharSequence.split( regex: Regex, limit: Int = 0 ): List<String> fun CharSequence.split( vararg delimiters: String, ignoreCase: Boolean = false, limit: Int = 0 ): List<String> fun CharSequence.split( ...

الدالة filterNotNull()‎ في Kotlin

تعيد الدالة filterNotNull()‎ جميع عناصر المصفوفة أو المجموعة المعطاة باستثناء تلك ذات القيمة null. البنية العامة fun <T : Any> Array<out T?>.filterNotNull(): List<T> fun <T : Any> Iterable<T?>.filterNotNull(): List<T> القيم المعادة تُعاد قائمة تحوي جميع عناصر المصفوفة أو المجموعة المعطاة باستثناء تلك ذات القيمة null. أمثلة تعرف الشيفرة الآتية مصفوفة باسم array باستخدام الدالة ()arrayOf، ثم تستخدم الدالة ()filterNotNull لاستبعاد العناصر ذات القيمة null: fun main(args: Array<String>) { val array = arrayOf(1, 2, 3, null, 5, 6) ...

الدالة plusElement()‎ في Kotlin

تضيف الدالة plusElement()‎ العنصر المُمرّر إليها إلى المصفوفة أو المجموعة التي استُدعيت معها. البنية العامة إن استدعيت الدالة plusElement()‎ مع المصفوفات، فستعيد مصفوفة تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى العنصر المُمرّر إليها: inline fun <T> Array<T>.plusElement(element: T): Array<T> وإن استدعيت مع المجموعات، فستعيد قائمة تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إليها العنصر المُمرّر إليها: inline fun <T> Iterable<T>.plusElement(element: T): List<T> inline fun <T> Collection<T>.plusElement(element: T): List<T> أمَّا إن استدعيت مع مجموعة من النوع Set، فستعيد مجموعة من ...

الدالة CharSequence.mapNotNullTo()‎ في Kotlin

تشبه الدالة mapNotNullTo()‎ الدالة mapNotNull()‎ تمامًا باستثناء أنها تضيف الناتج المعاد إلى المعامل المُمرَّر إليها بدلًا من وضعه في قائمة. البنية العامة inline fun <R : Any, C : MutableCollection<in R>> CharSequence.mapNotNullTo( destination: C, transform: (Char) -> R? ): C وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع توثيق الدوال المباشرة (inline functions)). المعاملات destination مجموعة متغيرة تمثل الوجهة التي سيضاف إليها الناتج الذي تعيده الدالة transform. transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. ...

الدالة groupBy()‎ في Kotlin

تجمِّع الدالة groupBy()‎ عناصر المصفوفة أو المجموعة التي استُدعيت معها في مجموعات، إذ تطبق دالة محدَّدة على كل عنصر ثمَّ تعاد خريطة تحوي مجموعاتٍ مفتاحُ كلِّ واحدةٍ منها مرتبطٌ بقائمة من العناصر المقابلة. تحافظ الخريطة المُعادة على على ترتيب التكرار (entry iteration order) للمفاتيح الناتجة عن المصفوفة أو المجموعة الأصلية. البنية العامة إن مُرِّر إلى الدالة groupBy()‎ المعامل keySelector فقط، فستُجمّع عناصر المصفوفة أو المجموعة المعطاة بحسب المفتاح الذي تعيده الدالة keySelector()‎ المطبقة على كل عنصر من تلك العناصر ثمَّ ...

الدالة CharSequence.mapIndexedTo()‎ في Kotlin

تشبه الدالة mapIndexedTo()‎ الدالةَ mapIndexed()‎ في جميع النواحي باستثناء أنها تضيف الناتج المعاد إلى المعامل الممرَّر إليها. البنية العامة inline fun <R, C : MutableCollection<in R>> CharSequence.mapIndexedTo( destination: C, transform: (index: Int, Char) -> R ): C وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات destination مجموعة متغيرة تمثل الوجهة التي سيضاف إليها الناتج الذي تعيده الدالة transform. transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها فهرس ...

الدالة mapNotNull()‎ في Kotlin

تعيد الدالة mapNotNull()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها باستثناء القيم العدميَّة null التي تعيدها تلك الدالة. البنية العامة يمكن استدعاء الدالة mapNotNull()‎ مع المصفوفات والمجموعات والخرائط: inline fun <T, R : Any> Array<out T>.mapNotNull( transform: (T) -> R? ): List<R> inline fun <T, R : Any> Iterable<T>.mapNotNull( transform: (T) -> R? ): List<R> inline fun <K, V, R : Any> Map<out K, V>.mapNotNull( ...

الدالة CharSequence.mapIndexedNotNullTo()‎ في Kotlin

تشبه الدالة mapIndexedNotNullTo()‎ الدالة mapIndexedNotNull()‎ تمامًا باستثناء أنها تضيف الناتج المعاد إلى المعامل الممرَّر إليها. البنية العامة inline fun <R : Any, C : MutableCollection<in R>> CharSequence.mapIndexedNotNullTo( destination: C, transform: (index: Int, Char) -> R? ): C وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع توثيق الدوال المباشرة (inline functions)). المعاملات destination مجموعة متغيرة تمثل الوجهة التي سيضاف إليها الناتج الذي تعيده الدالة transform. transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها فهرس ...

التابع CharSequence.lines()‎ في Kotlin

تقسّم الدالة lines()‎ سلسلة المحارف التي استٌدعيت معها إلى قائمة وتضع في عناصرها الأسطر المفصولة بأيٍّ من سلاسل المحارف التالية: CRLF أو LF أو CR. البنية العامة fun CharSequence.lines(): List<String> القيم المعادة تعاد قائمة من سلاسل نصية تحوي الأسطر المفصولة بأيٍّ من سلاسل المحارف التالية: CRLF أو LF أو CR. أمثلة مثال على استعمال الدالة lines()‎: fun main(args: Array<String>) { val str = "Hsoub\nWiki\nAcademy" for (line in str.lines()) ...

الدالة orEmpty()‎ في Kotlin

تعيد الدالة orEmpty()‎ المصفوفة أو المجموعة أو القائمة أو الخريطة التي استُدعيت معها إن لم تكن مساويةً للقيمة null، أو تعيد كائنًا فارغًا يقابل الكائن المعطى (مصفوفة فارغة، أو مجموعة فارغة ...إلخ.) خلاف ذلك. البنية العامة يمكن استدعاء الدالة orEmpty()‎ مع المصفوفات والمجموعات والقوائم والخرائط والمجموعات التي من النوع Set: inline fun <reified T> Array<out T>?.orEmpty(): Array<out T> inline fun <T> Collection<T>?.orEmpty(): Collection<T> inline fun <T> List<T>?.orEmpty(): List<T> inline fun <K, V> Map<K, V>?.orEmpty(): Map<K, V> (source) inline fun <K, V> Map<K, V>?.orEmpty(): Map<K, V> ...

الاستثناءات (Exceptions) في لغة Kotlin

أصناف الاستثناءات (Exception Classes) تنحدر كلّ أصناف الاستثناءات في لغة Kotlin من الصنف Throwable حيث يوجد لكلِّ استثناءٍ رسالةٌ للإعلام به وتتبُّع تكديسي (stack trace) وسببٌ اختياريّ. ويُستخدَم التعبير throw لرمي كائن استثناءٍ بالشكل: throw MyException("Hi There!") أمّا تعبير try فهو مُستخدَمٌ لكشف الاستثناء كما في الشيفرة: try { // شيفرة } catch (e: SomeException) { // معالجات الاستثناء } finally { // قسم اختياريّ } ومن الممكن أن يحتوي الاستثناء أكثر من قسمٍ واحدٍ من catch أو ...

الدالة filterIsInstanceTo()‎ في Kotlin

تضيف الدالة filterIsInstanceTo()‎ عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن إلى المجموعة المتغيرة destination المُمرّرة إليها. البنية العامة inline fun <reified R, C : MutableCollection<in R>> Array<*>.filterIsInstanceTo( destination: C ): C inline fun <reified R, C : MutableCollection<in R>> Iterable<*>.filterIsInstanceTo( destination: C ): C يمكن تمرير معامل klass إلى الدالة filterIsInstanceTo()‎: fun <C : MutableCollection<in R>, R> Array<*>.filterIsInstanceTo( destination: C, klass: Class<R> ): C fun ...

الدالة zip()‎ في Kotlin

تنشئ الدالة zip()‎ أزواجًا من عناصر كائنين لها نفس الفهرس، أو تنشئ قيمًا عبر تمرير عناصر لها نفس الفهرس تجلب من كائنين مختلفين إلى دالة معينة. البنية العامة إن استدعيت الدالة zip()‎ مع مصفوفة ومع تمرير مصفوفة أخرى إليها كوسيط، فستشكل أزواجًا من عناصر هاتين المصفوفتين التي لها نفس الفهرس وتضعها في قائمة؛ طول القائمة المعادة يساوي طول أٌقصرهما. infix fun <T, R> Array<out T>.zip( other: Array<out R> ): List<Pair<T, R>> infix fun <R> ByteArray.zip( ...

الدوال (Functions) في لغة Kotlin

التصريح عن الدوال (Function Declarations) يُصرَّح عن الدوال في لغة Kotlin باستخدام الكلمة المفتاحيّة fun كما يلي: fun double(x: Int): Int { return 2 * x } استخدام الدوال (Function Usage) يكون استدعاء الدوال كما في أيّ لغة برمجةٍ أخرى بالشكل: val result = double(2) أمّا استدعاء الدوال من الأصناف فيعتمد على المعامل . كما في الشيفرة: Sample().foo() // إنشاء كائنٍ من الصنف واستدعاء الدالة عبره المعاملات (Parameters) تُعرَّف المعاملات بالصيغة المُعتمدَة في لغة Pascal وهي name: type ، ...

الدالة subtract()‎ في Kotlin

تستثني الدالة subtract()‎ العناصر المشتركة بين كائنين. تحافظ المجموعة (Set) المُعادة على ترتيب التكرار الخاص بالمجموعة (collection) المعطاة. البنية العامة يمكن استدعاء الدالة subtract()‎ مع المصفوفات والمجموعات التكرارية: infix fun <T> Array<out T>.subtract( other: Iterable<T> ): Set<T> infix fun ByteArray.subtract( other: Iterable<Byte> ): Set<Byte> infix fun ShortArray.subtract( other: Iterable<Short> ): Set<Short> infix fun IntArray.subtract(other: Iterable<Int>): Set<Int> infix fun LongArray.subtract( other: Iterable<Long> ): Set<Long> infix fun FloatArray.subtract( other: Iterable<Float> ): Set<Float> infix ...

الدالة CharSequence.flatMap()‎ في Kotlin

تعيد الدالة flatMap()‎ قائمةً تضم ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف السلسلة التي استُدعيت معها. البنية العامة inline fun <R> CharSequence.flatMap( transform: (Char) -> Iterable<R> ): List<R> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة، وتعيد قيمة معينة تحل مكانه. القيم المعادة تُعاد قائمةٌ تضم ناتج تطبيق الدالة transform‎ على كل محرف من محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة ()flatMap: fun main(args: ...

الدالة windowed()‎ في Kotlin

تعيد الدالة windowed()‎ قائمة تحتوي على سلاسل نصية بحجم معين ثابت جلبت من سلسلة المحارف التي استدعيت معها عند التحرك بخطوات محددة ثابتة، أو تحوي ناتج تطبيق دالة معينة على تلك السلاسل النصية المجلوبة. البنية العامة fun CharSequence.windowed( size: Int, step: Int = 1, partialWindows: Boolean = false ): List<String> الإصدار المطلوب: Kotlin 1.2. تعيد الدالة windowed()‎ قائمة مكونة من سلاسل نصية حجم كل منها يساوي size جلبت من سلسلة المحارف ...

الدالة mapIndexedNotNull()‎ في Kotlin

تعيد الدالة mapIndexedNotNull()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء القيم العدميَّة null التي تعيدها تلك الدالة. البنية العامة يمكن استدعاء الدالةmapIndexedNotNull()‎ مع المصفوفات والمجموعات: inline fun <T, R : Any> Array<out T>.mapIndexedNotNull( transform: (index: Int, T) -> R? ): List<R> inline fun <T, R : Any> Iterable<T>.mapIndexedNotNull( transform: (index: Int, T) -> R? ): List<R> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة ...

الدالة zip()‎ في Kotlin

تنشئ الدالة zip()‎ أزواجًا من محارف سلسلتين لها نفس الفهرس، أو تنشئ قيمًا عبر تمرير عناصر لها نفس الفهرس تجلب من كائنين مختلفين إلى دالة معينة. البنية العامة infix fun CharSequence.zip( other: CharSequence ): List<Pair<Char, Char>> إن استدعيت الدالة zip()‎ مع سلسلة من المحارف ومع تمرير سلسلة أخرى إليها كمعامل، فستشكل أزواجًا من محارف هاتين السلسلتين لها نفس الفهرس وتضعها في قائمة؛ طول القائمة المعادة يساوي طول أٌقصرهما. inline fun <V> CharSequence.zip( other: CharSequence, transform: (a: Char, b: Char) -> V ): List<V> وإن ...

الدالة binarySearch()‎ في Kotlin

تبحث الدالة binarySearch()‎ عن عنصر معين في المجموعة أو مجال من المجموعة (Collection) باستخدام خوارزميَّة البحث الثنائي (binary search algorithm) وتعيد فهرس موقعه. ويجب أن تكون المجموعة مرتبَّةً وفق المُقارِن comparator وإلا فستكون النتيجة المعادة غير مُحدّدة. إن احتوت المصفوفة على عناصر متساوية، فلا يمكن التوقع أيها سيُعاد. تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدَّد؛ خلاف ذلك، فستعيد القيمة السالبة لنقطة الإدراج (‎-insertion point - 1‎)، وهي الفهرس حيث يجب أن يُدرج العنصر حتى تبقى ...

الدالة lastIndexOf()‎ في Kotlin

تجلب الدالة lastIndexOf()‎ فهرس آخر ظهور لعنصر محدَّد من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة lastIndexOf()‎ مع المصفوفات، والمجموعات والقوائم: fun <T> Array<out T>.lastIndexOf(element: T): Int fun ByteArray.lastIndexOf(element: Byte): Int fun ShortArray.lastIndexOf(element: Short): Int fun IntArray.lastIndexOf(element: Int): Int fun LongArray.lastIndexOf(element: Long): Int fun FloatArray.lastIndexOf(element: Float): Int fun DoubleArray.lastIndexOf(element: Double): Int fun BooleanArray.lastIndexOf(element: Boolean): Int fun CharArray.lastIndexOf(element: Char): Int fun <T> Iterable<T>.lastIndexOf(element: T): Int fun <T> List<T>.lastIndexOf(element: T): Int القيم المعادة يعاد فهرس آخر ظهور للعنصر المعطى والموجود في المصفوفة أو المجموعة أو القائمة المعطاة، أو القيمة ‎-1 إن لم ...

الدالة Regex.split()‎ في Kotlin

تقتطع الدالة split()‎ المحارف الموجودة بين الأجزاء المتطابقة مع التعبير النمطي الذي استُدعي معها في سلسلة المحارف الممررة إليها. البنية العامة actual fun split( input: CharSequence, limit: Int = 0 ): List<String> المعاملات input سلسلة المحارف المراد اقتطاع الأجزاء المجاورة لتلك المتطابقة مع تعبير نمطي وجلبها. limit عدد صحيح موجب يحدد الحد الأقصى لعدد الأجزاء المقتطعة المراد جلبها. قيمته الافتراضية هي: 0 أي لا يوجد حد أقصى. القيمة المعادة تعاد قائمة تضم المحارف الموجودة ...

الدالة CharSequence.mapIndexedNotNull()‎ في Kotlin

تعيد الدالة mapIndexedNotNull()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل محرف من محارف السلسلة التي استُدعيت معها باستثناء القيم العدميَّة null التي تعيدها تلك الدالة. البنية العامة inline fun <R : Any> CharSequence.mapIndexedNotNull( transform: (index: Int, Char) -> R? ): List<R> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها فهرس المحرف وقيمته وتعيد القيمة المقابلة لهذا المحرف. القيم المعادة تُعاد ...

الدالة CharSequence.map()‎ في Kotlin

تعيد الدالة map()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف السلسلة التي استُدعيت معها. البنية العامة inline fun <R> CharSequence.map( transform: (Char) -> R ): List<R> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع توثيق الدوال المباشرة (inline functions)). المعاملات transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها محرفٌ وتعيد القيمة المقابلة له. القيم المعادة تُعاد قائمةٌ تضم ناتج تطبيق الدالة transform على كل محرف من محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة map()‎: ...

الدالة CharSequence.mapNotNull()‎ في Kotlin

تعيد الدالة mapNotNull()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل محرف من محارف السلسلة التي استُدعيت معها باستثناء القيم العدميَّة null التي تعيدها تلك الدالة. البنية العامة inline fun <R : Any> CharSequence.mapNotNull( transform: (Char) -> R? ): List<R> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع توثيق الدوال المباشرة (inline functions)). المعاملات transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها محرفٌ وتعيد القيمة المقابلة له. القيم المعادة تُعاد قائمةٌ تضم ناتج تطبيق الدالة transform‎ المعطاة على كل عنصر من ...

الدالة CharSequence.mapIndexed()‎ في Kotlin

تعيد الدالة mapIndexed()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل محرف من محارف السلسلة التي استُدعيت معها. البنية العامة inline fun <R> CharSequence.mapIndexed( transform: (index: Int, Char) -> R ): List<R> وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع توثيق الدوال المباشرة (inline functions)). المعاملات transform دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها فهرس المحرف وقيمته وتعيد القيمة المقابلة لهذا المحرف. القيم المعادة تُعاد قائمةٌ تضم ناتج تطبيق الدالة transform‎ المُمرّرة على فهرس وقيمة كل ...

Kotlin/Topics

بُنية لغة Kotlin مشابهةٌ لبنية لغة البرمجة Java بوصفها كائنيّة التوجه (OOP)، وبالتالي فهي تعتمد أساسًا على وجود الأصناف (classes) التي تحتوي بدورها على الخاصّيّات (properties) والدوال (functions)، كما وتدعم Kotlin العلاقات فيما بينها مثل الوراثة (inheritance) من صنفٍ أعلى (superclass) أو التداخل فيما بينها (nesting classes)، وتمتاز بوجود مُحدِّدات الوصول (visibility modifiers) للتحكم بعمليات الوصول للبيانات المُخزَّنة، وكذلك فهي تعتمد في بُنيتها على الحزم (packages) والمكتبات (libraries) التي تحتوي على الدوال المساعدة عند الحاجة إليها، أمّا عن بُنية التعليمات ...

الدالة associate()‎ في لغة Kotlin

تعيد الدالة associate()‎ خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة أو المجموعة (Collection) إلى الدالة المررة إليها. إن كان لزوجين نفس المفتاح (key) فالأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بالمصفوفة أو المجموعة الأصليَّة. البنية العامة تعيد الدالة associate()‎ خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر مصفوفةٍ إلى الدالة ()transform. inline fun <T, K, V> Array<out T>.associate( transform: (T) -> Pair<K, V> ): Map<K, ...

الدالة last()‎ في Kotlin

تجلب الدالة last()‎ آخر عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها إن لم يمرر إليها أي شيء، أو آخر عنصر يحق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها. إن كانت المصفوفة أو المجموعة التي استُدعيت الدالة first()‎ عبرها فارغة أو لم يكن هناك أي عنصر يحقق الدالة المنطقية الممرَّرة إليها، فستُطلِق الدالة الاستثناءNoSuchElementException. البنية العامة يمكن استدعاء الدالة last()‎ مع المصفوفات بدون تمرير أية معاملات: fun <T> Array<out T>.last(): T fun ByteArray.last(): Byte fun ShortArray.last(): Short fun IntArray.last(): Int fun LongArray.last(): Long fun FloatArray.last(): Float fun DoubleArray.last(): Double fun BooleanArray.last(): Boolean ...

بنية البرمجة في لغة Kotlin

تعريف الحزم (Package) يُكتب توصيف الحزمة (package) في بداية الملف المصدريّ (source file) بالشكل الآتي: package my.demo import java.util.* // ... ولا يُشترط التوافق ما بين الحزمة (package) والمجلد الذي توجد فيه (directory)، إذ من الممكن أن تتوضع الملفات المصدريّة عشوائيًّا في نظام الملفات. المزيد عن الحزم (packages). تعريف الدوال (Function) إن كانت الدالة بمتحولين من نوع Int وتعيد قيمةً بنوع Int أيضًا، فسيصبح تعريفها بالشكل: fun sum(a: Int, b: Int): Int {   return a + b } أما الشيفرة الآتية فهي لتعريف دالةٍ باسم sum ...

الدالة plus()‎ في Kotlin

تضيف الدالة plus()‎ الوسيط المُمرَّر إليها إلى الكائن الذي استدعيت معه. البنية العامة إن استدعيت الدالة plus()‎ مع المصفوفات، فستعيد مصفوفة تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى العنصر المُمرّر إليها: operator fun <T> Array<T>.plus(element: T): Array<T> operator fun ByteArray.plus(element: Byte): ByteArray operator fun ShortArray.plus(element: Short): ShortArray operator fun IntArray.plus(element: Int): IntArray operator fun LongArray.plus(element: Long): LongArray operator fun FloatArray.plus(element: Float): FloatArray operator fun DoubleArray.plus(element: Double): DoubleArray operator fun BooleanArray.plus( element: Boolean ): BooleanArray وإن استدعيت هذه ...

الخاصية MatchResult.groupValues في Kotlin

تمثل الخاصية MatchResult.groupValues قائمة بقيم المجموعة المفهرسة المتطابقة. حجم تلك القائمة يساوي groupCount + 1، إذ يكون groupCount عدد المجموعات المتطابقة في التعبير النمطي. تلك المجموعات مُفهرسة بدءًا من العدد 1 وحتى groupCount، والمجموعة ذات الفهرس 0 توافق كل ما تطابق. إن كانت المجموعة في التعبير النمطي اختيارية ولم ترصد هذه المجموعة أي عملية تطابق تُذكر، فستساوي قيمةُ العنصر المقابل في المجموعة groupValues حينئذٍ سلسلةً نصيةً فارغةً. البنية العامة abstract val groupValues: List<String> القيمة المعادة تعاد قائمة تضم جميع قيم ...

الدالة toList()‎ في Kotlin

تضيف الدالة toList()‎ كل محارف سلسلة المحارف التي استٌدعيت معها إلى قائمة، إذ يوضع كل محرف في عنصر. البنية العامة fun CharSequence.toList(): List<Char> القيم المعادة تعاد قائمة جديدة تحوي جميع محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة toList()‎: fun main(args: Array<String>) { println("Hello, world!".toList()) // [H, e, l, l, o, ,, , w, o, r, l, d, !] println("Hsoub".toList()) // [H, s, o, u, b] println("114".toList()) // [1, 1, 4] } ...

الدالة splitToSequence()‎ في Kotlin

تقتطع الدالة splitToSequence()‎ المحارف الموجودة بين الأجزاء المتطابقة مع تعبير نمطي معين أو بين سلاسل نصية أو محارف معينة في سلسلة المحارف الممررة إليها وتعيدها في سلسلة.  البنية العامة fun CharSequence.splitToSequence( vararg delimiters: String, ignoreCase: Boolean = false, limit: Int = 0 ): Sequence<String> fun CharSequence.split( vararg delimiters: Char, ignoreCase: Boolean = false, limit: Int = 0 ): List<String> المعاملات regex النمط أو التعبير النمطي الذي يراد ...

الدالة CharSequence.groupBy()‎ في Kotlin

تجمِّع الدالة groupBy()‎ محارف السلسلة التي استُدعيت معها في مجموعات، إذ تطبق دالة محدَّدة على كل عنصر ثمَّ تعاد خريطة تحوي مجموعاتٍ مفتاحُ كلِّ واحدةٍ منها مرتبطٌ بقائمة من المحارف المقابلة. تحافظ الخريطة المُعادة على على ترتيب التكرار (entry iteration order) للمفاتيح الناتجة عن سلسلة المحارف الأصلية. البنية العامة inline fun <K> CharSequence.groupBy( keySelector: (Char) -> K ): Map<K, List<Char>> inline fun <K, V> CharSequence.groupBy( keySelector: (Char) -> K, valueTransform: (Char) -> V ): Map<K, List<V>> يُلاحَظ وجود الكلمة المفتاحية inline للدلالة ...

الدالة lastOrNull()‎ في Kotlin

تجلب الدالة lastOrNull()‎ آخر عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها إن لم يُمرَّر إليها أي شيء، أو آخر عنصر يحقق شرطًا معيَّنًا في حال تمرير دالة منطقية إليها. تشبه هذه الدالةُ الدالةَ first()‎ تمامًا باستثناء أنها تعيد القيمة null بدلًا من رمي استثناءٍ إن كانت المصفوفة أو المجموعة التي استُدعيت الدالة last()‎ معها فارغة أو لم يكن هناك أي عنصر يحقق الدالة المنطقية الممرَّرة إليها. البنية العامة يمكن استدعاء الدالة lastOrNull()‎ مع المصفوفات بدون تمرير أية معاملات: fun <T> Array<out T>.lastOrNull(): T? fun ByteArray.lastOrNull(): Byte? fun ShortArray.lastOrNull(): Short? fun IntArray.lastOrNull(): Int? ...

الدالة associateTo()‎ في Kotlin

تشبه الدالة associateTo()‎ الدالة associate()‎ تمامًا باستثناء أنها تضيف الناتج الذي تعيده إلى خريطة موجودة مسبقًا.   البنية العامة inline fun <T, K, V, M : MutableMap<in K, in V>> Array<out T>.associateTo( destination: M, transform: (T) -> Pair<K, V> ): M inline fun <K, V, M : MutableMap<in K, in V>> ByteArray.associateTo( destination: M, transform: (Byte) -> Pair<K, V> ): M inline fun <K, V, M : MutableMap<in K, in ...

الدالة associateBy()‎ في Kotlin

تعيد الدالة associateBy()‎ خريطةً (map) مكونة من الأزواج "مفتاح/قيمة"، إذ يكون المفتاح (key) هو الناتج الذي تعيده الدالة keySelector الممررة إليها وتكون القيمة (value) المقابلة لذلك المفتاح هي إمَّا عناصر المصفوفة أو المجموعة المعطاة أو الناتج الذي تعيده الدالة valueTransform الممررة.  إن كان لعنصرين نفس المفتاح (key) بعد تطبيق الدالة keySelector، فإنَّ الأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بالمصفوفة أو المجموعة الأصليَّة. البنية العامة إن استدعيت الدالة associateBy()‎مع مصفوفة، فستعيد خريطةً (map) ...

الدالة indexOf()‎ في Kotlin

تجلب الدالة indexOf()‎ فهرس أول ظهور لعنصر محدَّد من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة indexOf()‎ مع المصفوفات، والمجموعات والقوائم: fun <T> Array<out T>.indexOf(element: T): Int fun ByteArray.indexOf(element: Byte): Int fun ShortArray.indexOf(element: Short): Int fun IntArray.indexOf(element: Int): Int fun LongArray.indexOf(element: Long): Int fun FloatArray.indexOf(element: Float): Int fun DoubleArray.indexOf(element: Double): Int fun BooleanArray.indexOf(element: Boolean): Int fun CharArray.indexOf(element: Char): Int fun <T> Iterable<T>.indexOf(element: T): Int fun <T> List<T>.indexOf(element: T): Int المعاملات index العنصر المراد جلب فهرس ...

التعابير الاصطلاحية (Idioms) في لغة Kotlin

تعرِض هذه الصفحة عددًا من التعابير الاصطلاحيّة المستخدَمة بكثرةٍ في لغة Kotlin، ولأيّ اصطلاحٍ جديدٍ لم يُذكَر فيمكنك تعديل هذه الصفحة لإضافته. إنشاء كائنات نقل البيانات DTO:‏ Data Transfer Objects (الكائنات POJO/POCO) ليكن الصنف (class) الآتي باسم Customer: data class Customer(val name: String, val email: String) وله التوابع الوظيفيّة (functional methods) الآتية: توابع getter (وتوابع setter في حالة المتحولات من النوع var) لكافة الخاصّيّات (properties) equals()‎ hashCode()‎ toString()‎ copy()‎ component1()‎ و component2()‎ ...إلخ. وذلك لكافة الخاصّيّات (properties) في الصنف (راجع أصناف البيانات ...

الدالة filterIndexedTo()‎ في Kotlin

تشبه الدالة filterIndexedTo()‎ الدالة filterIndexed()‎ تمامًا باستثناء أنها تضيف الناتج إلى كائن موجود مسبقًا بدلًا من أن تعيده.   البنية العامة inline fun <T, C : MutableCollection<in T>> Array<out T>.filterIndexedTo( destination: C, predicate: (index: Int, T) -> Boolean ): C inline fun <C : MutableCollection<in Byte>> ByteArray.filterIndexedTo( destination: C, predicate: (index: Int, Byte) -> Boolean ): C inline fun <C : MutableCollection<in Short>> ShortArray.filterIndexedTo( destination: C, ...

الدالة indexOfLast()‎ في Kotlin

تجلب الدالة indexOfLast()‎ فهرس آخر عنصر يحقِّق شرطًا معيَّنًا من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة indexOfLast()‎ مع المصفوفات والمجموعات والقوائم: inline fun <T> Array<out T>.indexOfLast( predicate: (T) -> Boolean ): Int inline fun ByteArray.indexOfLast( predicate: (Byte) -> Boolean ): Int inline fun ShortArray.indexOfLast( predicate: (Short) -> Boolean ): Int inline fun IntArray.indexOfLast( predicate: (Int) -> Boolean ): Int inline fun LongArray.indexOfLast( predicate: ...

الدالة findLast()‎ في Kotlin

تبحث الدالة findLast()‎ على عنصر محدَّد ضمن عناصر المصفوفة أو المجموعة التي استُدعيت معها ثمَّ تعيد آخر ظهور له. البنية العامة inline fun <T> Array<out T>.findLast( predicate: (T) -> Boolean ): T? inline fun ByteArray.findLast( predicate: (Byte) -> Boolean ): Byte? inline fun ShortArray.findLast( predicate: (Short) -> Boolean ): Short? inline fun IntArray.findLast( predicate: (Int) -> Boolean ): Int? inline fun LongArray.findLast( predicate: (Long) -> Boolean ): Long? inline fun ...

الدالة elementAtOrNull()‎ في Kotlin

تجلب الدالة elementAtOrNull()‎ عنصرًا ذي فهرس معيَّن من المصفوفة أو المجموعة التي استُدعيت معها. إن كان الفهرس المعطى خارج حدود المصفوفة أو المجموعة، فستُعيد الدالة القيمة العدمية null. البنية العامة يمكن استدعاء الدالةelementAtOrNull()‎ مع المصفوفات: inline fun <T> Array<out T>.elementAtOrNull(index: Int): T? inline fun ByteArray.elementAtOrNull(index: Int): Byte? inline fun ShortArray.elementAtOrNull(index: Int): Short? inline fun IntArray.elementAtOrNull(index: Int): Int? inline fun LongArray.elementAtOrNull(index: Int): Long? inline fun FloatArray.elementAtOrNull(index: Int): Float? inline fun DoubleArray.elementAtOrNull(index: Int): Double? inline fun BooleanArray.elementAtOrNull(index: Int): Boolean? inline fun CharArray.elementAtOrNull(index: Int): Char? ومع ...

الدالة getOrNull()‎ في Kotlin

تجلب الدالة getOrNull()‎ عنصرًا ذا فهرس مُحدَّد من المصفوفة أو المجموعة التي استُدعيت معها أو تعيد القيمة null إن كان الفهرس المعطى يقع خارج حدود المصفوفة أو المجموعة. البنية العامة يمكن استدعاء الدالة getOrElse()‎ مع المصفوفات: fun <T> Array<out T>.getOrNull(index: Int): T? fun ByteArray.getOrNull(index: Int): Byte? fun ShortArray.getOrNull(index: Int): Short? fun IntArray.getOrNull(index: Int): Int? fun LongArray.getOrNull(index: Int): Long? fun FloatArray.getOrNull(index: Int): Float? fun DoubleArray.getOrNull(index: Int): Double? fun BooleanArray.getOrNull(index: Int): Boolean? fun CharArray.getOrNull(index: Int): Char? ويمكن استدعاؤها مع المجموعات أيضًا: fun <T> List<T>.getOrNull(index: ...

الدالة indexOfFirst()‎ في Kotlin

تجلب الدالة indexOfFirst()‎ فهرس أول عنصر يحقِّق شرطًا معيَّنًا من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة indexOfFirst()‎ مع المصفوفات والمجموعات والقوائم: inline fun <T> Array<out T>.indexOfFirst( predicate: (T) -> Boolean ): Int inline fun ByteArray.indexOfFirst( predicate: (Byte) -> Boolean ): Int inline fun ShortArray.indexOfFirst( predicate: (Short) -> Boolean ): Int inline fun IntArray.indexOfFirst( predicate: (Int) -> Boolean ): Int inline fun LongArray.indexOfFirst( ...

عرض (500 السابقة | 500 التالية) (20 | 50 | 100 | 250 | 500).