نتائج البحث

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

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

يختلف سلوك الدالة any()‎ بحسب طريقة استدعائها، وسنناقش هذه الحالات تباعًا. حالات استدعاء الدالة any()‎ في حال استدعاء الدالة any()‎ مع مصفوفة (array) أو مجموعة (collection) دون تمرير أيّ معامل (parameter) لها، فستعيد القيمة true إن كانت المصفوفة أو المجموعة تحتوي على عنصر ٍ واحدٍ على الأقل (أي أنها غير فارغة)، وتعيد القيمة false بخلاف ذلك. في حال تمرير دالةٍ ما كوسيطٍ (parameter) في الدالة any()‎ فستعيد القيمة true إن كان هناك واحدٌ على الأقل من عناصر المصفوفة أو المجموعة ...

الدالة any()‎ في بايثون

تعيد الدّالة any()‎ القيمة True إن كان أحد عناصر الكائن القابل للتكرار (iterable) المعطى يساوي القيمة True أو إن كان الكائن القابل للتكرار فارغًا. البنية العامة any() المعاملات iterable كائن قابل للتكرار، يُمكن أن يكون قائمةً أو مجموعةً أو سلسلةً نصيّة أو أيّ كائنٍ يُمكنك استخدام حلقة التّكرار for عليه للوصول إلى كلّ قيمةٍ من قيمه على حدى. القيمة المعادة القيمة True إن كان أحد عناصر الكائن القابل للتكرار المعطى يُساوي القيمة True أو إن كان الكائن القابل للتكرار فارغًا. ...

التهيئة الأولية للصنف ‎‎Any‎ في Kotlin

تعيد الدالة Any()‎ نسخةً من الصنف Any والذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. البنية العامة Any() القيم المعادة يعاد كائنٌ (object) من الصنف Any. أمثلة تنشِئ الدالة Any()‎ في الشيفرة الآتية كائنًا من الصنف Anyباسم obj ، ثم يُحدِّد صنف الكائن المُنشَأ وذلك بالاعتماد على خاصيّة الاسم البسيط للصنف (وهي class.simpleName) : fun main(args: Array<String>) {    val obj = Any()    println(" ${obj::class.simpleName}")  // Any } انظر ...

التهيئة الأولية للصنف ‎‎Any‎ في Kotlin

تعيد الدالة Any()‎ نسخةً من الصنف Any والذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. البنية العامة Any() القيم المعادة يعاد كائنٌ (object) من الصنف Any. أمثلة تنشِئ الدالة Any()‎ في الشيفرة الآتية كائنًا من الصنف Anyباسم obj ، ثم يُحدِّد صنف الكائن المُنشَأ وذلك بالاعتماد على خاصيّة الاسم البسيط للصنف (وهي class.simpleName) : fun main(args: Array<String>) {    val obj = Any()    println(" ${obj::class.simpleName}")  // Any } انظر ...

الصنف ‎‎Any‎‎ في Kotlin

يعد الصنف Any الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. open class Any الدوال البانية <int> يعيد التابع Any()‎ نسخةً من الصنف Any الذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. الدوال equals تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معها. hashCode تعيد الدالة hashCode()‎ قيمة الشيفرة hash code الخاصّة بالكائن الذي ...

الدالة String.format()‎ في Kotlin

تنسِّق الدالة format()‎ سلسلة نصية وفقًا لقيمة المعاملات التي تمرر إليها. البنية العامة inline fun String.format(vararg args: Any?): String بيئة التشغيل المطلوبة: JVM. تستعمل format()‎ السلسلة النصية التي استُدعيت معها كسلسلة تنسيق نصية (format string) وتعيد سلسلة نصية ناتجة عن تعويض الوسائط args المعطاة وباستخدام الإعدادات الافتراضية للمحلية (locale). inline fun String.Companion.format( format: String, vararg args: Any? ): String بيئة التشغيل المطلوبة: JVM. تستعمل الدالة format()‎ السلسلة النصية format المُمرّرة كسلسلة تنسيق نصية وتعيد سلسلة نصية ناتجة عن ...

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

تعيد الخاصيّة javaClass صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصية في جميع الأصناف الفرعيّة (sub-classes) من الصنف Any. البنية العامة inline val <T : Any> T.javaClass: Class<T> يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة صنف Java الخاصّ بالكائن الذي تُستدعى عبره أثناء التشغيل (runtime). أمثلة تنشِئ الشيفرة الآتية سلسلةً نصيةً باسم a، وتحصل على صنف Java الخاص بها عبر استدعاء ...

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

تعيد الخاصيّة javaClass صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصية في جميع الأصناف الفرعيّة (sub-classes) من الصنف Any. البنية العامة inline val <T : Any> T.javaClass: Class<T> يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة صنف Java الخاصّ بالكائن الذي تُستدعى عبره أثناء التشغيل (runtime). أمثلة تنشِئ الشيفرة الآتية سلسلةً نصيةً باسم a، وتحصل على صنف Java الخاص بها عبر استدعاء ...

الدالة ‎‎Any.toString()‎‎ في Kotlin

تحول الدالة toString()‎ الكائن الذي يُستدعى معه إلى سلسلة نصية (String). البنية العامة open fun toString(): String وجود الكلمة المفتاحيّة open هنا يدل على السماح بإعادة تعريف (override) هذه الدالة في الأصناف الفرعيّة (subclasses) للصنف Any (راجع صفحة الأصناف والوراثة للمزيد من التفاصيل). القيم المعادة تعاد سلسلة نصيّة تضم جميع محتويات الكائن المعطى. أمثلة مثال على استعمال الدالة toString()‎ مع سلسلة نصية: fun main(args: Array<String>) {    var x = 5    println(x.toString()) // 5 } مثالٌ آخر على استعمال الدالة toString()‎ مع مصفوفة: import java.util.* fun main(args: ...

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

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

تشبه الدالة mapNotNullTo()‎ الدالة mapNotNull()‎ تمامًا باستثناء أنها تضيف الناتج المعاد إلى المعامل المُمرَّر إليها بدلًا من وضعه في قائمة. البنية العامة يمكن استدعاء الدالة mapNotNullTo()‎ مع المصفوفات والمجموعات والخرائط: inline fun <T, R : Any, C : MutableCollection<in R>> Array<out T>.mapNotNullTo( destination: C, transform: (T) -> R? ): C inline fun <T, R : Any, C : MutableCollection<in R>> Iterable<T>.mapNotNullTo( destination: C, transform: (T) -> R? ): ...

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

تتحقق الدالة CharSequence.any()‎ إن كانت سلسلة من المحارف تحتوي على محرف واحد على أقل تقدير، أو كانت تحتوي على محرف واحد محقق لشرط معين. البنية العامة fun CharSequence.any(): Boolean inline fun CharSequence.any( predicate: (Char) -> Boolean ): Boolean (source) المعاملات predicate دالةٌ تمثل الشرط المراد تطبيقه على كل محرف من محارف السلسلة النصية المعطاة، إذ يمرر إليها محرفًا وتعيد لهذا المحرف قيمة منطقية. القيم المعادة تعاد القيمة true كانت سلسلة المحارف المعطاة تحتوي على محرف واحد على أقل ...

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

تعيد الدالة asDynamic()‎ قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكي (dynamic type)، الذي يُسمَح بإسناده إلى أي متغيّر أو تمريره كمتغيّر وسيط (argument) أيًّا كان نوعه. بيئة التشغيل المطلوبة:  JS البنية العامة inline fun Any?.asDynamic(): dynamic يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة من النوع الديناميكي (dynamic type). انظر أيضًا الدوال المباشرة (inline functions) في لغة Kotlin. مصادر صفحة الدالة ...

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

تعيد الدالة asDynamic()‎ قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكي (dynamic type)، الذي يُسمَح بإسناده إلى أي متغيّر أو تمريره كمتغيّر وسيط (argument) أيًّا كان نوعه. بيئة التشغيل المطلوبة:  JS البنية العامة inline fun Any?.asDynamic(): dynamic يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة من النوع الديناميكي (dynamic type). انظر أيضًا الدوال المباشرة (inline functions) في لغة Kotlin. مصادر صفحة الدالة ...

الدالة 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 يدل على أنَّ هذه الدالة مباشرة ...

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

تشبه الدالة filterNotNullTo()‎ الدالة filterNotNull()‎ في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها. الجدير بالذكر أنّه ينبغي أن يكون ذلك المعامل المعطى مجموعةً قابلةً للتغيير (MutableCollection). البنية العامة fun <C : MutableCollection<in T>, T : Any> Array<out T?>.filterNotNullTo( destination: C ): C fun <C : MutableCollection<in T>, T : Any> Iterable<T?>.filterNotNullTo( destination: C ): C المعاملات destination كائن موجود مسبقًا يمثل الوجهة المراد إضافة الناتج فيها. predicate دالةٌ تمثل الشرط المراد ...

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

تعيد الدالة toString()‎ سلسلة نصية تمثل الكائن الذي استدعيت معه. البنية العامة fun Any?.toString(): String القيم المعادة تعاد سلسلة نصيّة (string) تمثّل الكائن المُحدَّد. أمثلة استخدام الدالةtoString()‎ مع متغير بسيط: fun main(args: Array<String>) { var x = 5 println(x.toString()) // 5 } استخدام الدالة toString()‎ مع المصفوفات: import java.util.* fun main(args: Array<String>) { val nums = arrayOf(1, 2, 3, 4, 5) println(Arrays.toString(nums)) // [1, 2, 3, 4, 5] } انظر أيضًا الدالة hashCode()‎: ...

الدالة Enum.clone()‎ في Kotlin

ترمي الدالة clone()‎ استثناءً لأنّ ثوابت الصنف Enum لا يمكن أن تُنسَخ. تمنع هذه الدالة الأصناف ذات النوع Enum من أن ترِث من الصنف Cloneable. البنية العامة protected fun clone(): Any أمثلة يؤدي استعمال الدالة clone()‎ في المثال التالي إلى رمي استثناء: fun main(args: Array<String>) { val x = ColorEnum.Red val y = x.clone() // Error:(3, 14) Cannot access 'clone': it is protected in 'ColorEnum' } enum class ColorEnum(val colorCode: Int) { Red(2), ...

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

تضيف الدالة append()‎ سلسلة المحارف الممررة إليها إلى الكائن الذي استُدعي معها. البنية العامة fun <T> T.append(vararg value: CharSequence?): T المعاملات value سلسلة المحارف التي يراد إضافتها إلى الكائن المعطى. القيم المعادة يعاد الكائن نفسه المعطى بعد إضافة سلسلة المحارف value إليه. أمثلة استعمال الدالة append()‎ لإضافة سلسلة من المحارف إلى كائن من النوع StringBuilder: fun main(args: Array<String>) { val str = StringBuilder("hsoub") println(str.append(" academy")) // hsoub academy } انظر أيضًا الدالة append()‎: تضيف المحرف الممرر إليها أو كامل محتوى الكائن المُمرّر إليها أو ...

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

تشبه الدالة mapIndexedNotNullTo()‎ الدالة mapIndexedNotNull()‎ تمامًا باستثناء أنها تضيف الناتج المعاد إلى المعامل الممرَّر إليها. البنية العامة يمكن استدعاء الدالة mapIndexedNotNullTo()‎ مع المصفوفات والمجموعات: inline fun <T, R : Any, C : MutableCollection<in R>> Array<out T>.mapIndexedNotNullTo( destination: C, transform: (index: Int, T) -> R? ): C inline fun <T, R : Any, C : MutableCollection<in R>> Iterable<T>.mapIndexedNotNullTo( destination: C, transform: (index: Int, T) -> R? ): C وجود الكلمة المفتاحية inline يدل ...

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

تتحقق الدالة all()‎ إن كانت جميع محارف سلسلة معينة من المحارف محققةً لشرط معين. البنية العامة inline fun CharSequence.all( predicate: (Char) -> Boolean ): Boolean المعاملات predicate دالةٌ تمثل الشرط المراد تطبيقه على كل محرف من محارف السلسلة النصية المعطاة، إذ يمرر إليها محرفًا وتعيد لهذا المحرف قيمة منطقية. القيم المعادة تعاد القيمة true إن كانت جميع محارف سلسلة المحارف المعطاة محققةً للشرط المحدد في المعامل predicate، أو تعاد القيمة false خلاف ذلك. أمثلة استعمال الدالة all()‎ للتحقق ...

بنية البرمجة في لغة 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 ...

الدالة StringBuilder.append()‎ في Kotlin

تضيف الدالة append()‎ محرفًا أو سلسلة نصية أو أيَّ كائن آخر إلى الكائن StringBuilder. البنية العامة actual fun append(c: Char): StringBuilder actual fun append(csq: CharSequence?): StringBuilder actual fun append( csq: CharSequence?, start: Int, end: Int ): StringBuilder actual fun append(obj: Any?): StringBuilder بيئة التشغيل المطلوبة: JS. حلت الدالة Appendable.append مكان هذه الدالة. المعاملات c محرفٌ يراد إضافته إلى الكائن StringBuilder. csq سلسلة من المحارف التي يراد إضافتها بأكملها أو جزء محدد منها ...

التحقق من الأنواع (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) يتتبَّع ...

الدالة ‎‎Any.equals()‎ في Kotlin

تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معه. وأيُّ تعريف لاستخدام هذه الدالة يجب أن يكون: انعكاسيًا (Reflexive): لكل مرجع x لا يساوي null، يجب أن تُعيد العبارة x.equals(x)‎ القيمة true. تماثليًَا (Symmetric): لكل قيمتين مرجعيتين x و y لا تساويان null، ستعيد العبارة x.equals (y)‎ القيمة true إذا وفقط إذا أعادت العبارة y.equals (x)‎ القيمة true. تواتريًا (Transitive):  لكل القيم المرجعية x و y و z التي لا تساوي null، ستعيد العبارة  x.equals ...

الدالة 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 دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. ...

التساوي (Equality) في لغة Kotlin

تحتوي لغة Kotlin على نوعين من التساوي: التساوي البنيويّ (structural equality): يكون التحقُّق فيه عبر الدالة equals()‎. التساوي المرجعيّ (referential equality): وهو التحقُّق من الإشارة إلى نفس الكائن (object). التساوي البنيويّ (Structural Equality) يعتمد التساوي البنيويّ على المعامل == ونفيه =! ، إذ يُترجَم التعبير a == b إلى الصيغة: a?.equals(b) ?: (b === null) فإن لم يحتوِ المتغيِّر a على القيمة الفارغة null فستُستدعَى الدالةequals(Any?)‎ ، أما إن كانت قيمته null فيجري التحقُّق من أنّ b مساوٍ -مرجعيًّا- للقيمة null. ...

الدالة ‎‎unsafeCast()‎ للتحويل غير الآمن بين الأنواع في Kotlin

يحوِّل المعامل as الكائن الذي استُدعي عبره إلى نوعٍ  آخر (T) بشكلٍ غير آمن (unsafe) أي بدون التحقُّق من الأنواع، فإن  كان التحويل غير جائزٍ، فسيُعلِم المُترجم بوجود خطأٍ، ويعبِّر المعامل as عن استدعاء الدالة unsafeCast()‎ التي تجري عملية التحويل الفعليّ. البنية العامة inline fun <T> Any?.unsafeCast(): T يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة الكائن (object) بعد تحويله إلى النوع الآخر المُحدَّد (T). ...

الدالة ‎‎unsafeCast()‎ للتحويل غير الآمن بين الأنواع في Kotlin

يحوِّل المعامل as الكائن الذي استُدعي عبره إلى نوعٍ  آخر (T) بشكلٍ غير آمن (unsafe) أي بدون التحقُّق من الأنواع، فإن  كان التحويل غير جائزٍ، فسيُعلِم المُترجم بوجود خطأٍ، ويعبِّر المعامل as عن استدعاء الدالة unsafeCast()‎ التي تجري عملية التحويل الفعليّ. البنية العامة inline fun <T> Any?.unsafeCast(): T يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة الكائن (object) بعد تحويله إلى النوع الآخر المُحدَّد (T). ...

الدالة Enum.equals()‎ في Kotlin

تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معها. استدعاء هذه الدالة يجب أن يكون: انعكاسيًا (Reflexive): لكل مرجع x لا يساوي null، يجب أن يعيد استدعاء x.equals(x)‎ القيمة true. تماثليًَا (Symmetric): لكل قيمتين مرجعيتين x و y لا تساويان null، سيعيد الاستدعاء x.equals(y)‎ القيمة true إذا، وفقط، إذا أعادت y.equals(x)‎ القيمة true. تواتريًا (Transitive):  لكل القيم المرجعية x و y و z التي لا تساوي null، سيعيد استدعاء x.equals(z)‎ القيمة true إن أعادت x.equals(y)‎ و ...

الدالة 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 دالةٌ تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها فهرس ...

التسمية البديلة للأنواع (Type aliases) في لغة Kotlin

تدعم لغة Kotlin ميّزة التسمية البديلة للأنواع الموجودة للبيانات، وخاصّة إن كان اسم النوع طويلًا فيُستعاض عنه باسمٍ أقصرٍ ويُستخدَم الاسم الجديد في كتابة الشيفرات؛ فمن المفيد مثلًا تسمية الأنواع المُعمّمة (generics) بأسماء أقصرٍ، مثل الشيفرة الآتية المُستخدَمة لتسمية أنواع المجموعات (collections): typealias NodeSet = Set<Network.Node> typealias FileTable<K> = MutableMap<K, MutableList<File>> وبالإمكان أيضًا تسمية الأنواع المختلفة للدوال، مثل: typealias MyHandler = (Int, String, Any) -> Unit typealias Predicate<T> = (T) -> Boolean وكذلك الأمر بالنسبة للأصناف الداخليّة (inner classes) والمتداخلة (nested classes)، مثل: class ...

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

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

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

تحول الدالة String()‎ جميع محتويات المصفوفة أو الكائن الممرر إليها (أو جزء منها فقط) إلى سلسلة نصية ويمكن أن تكون بترميز محدد. البنية العامة inline fun String(bytes: ByteArray, charset: Charset): String inline fun String( bytes: ByteArray, offset: Int, length: Int, charset: Charset ): String بيئة التشغيل المطلوبة: JVM. تحول الدالة String()‎ جميع محتويات المصفوفة bytes أو جزءًا محددًا منها (يبدأ عند العنصر الذي ينزاح بمقدار offset ...

الخاصّيّات المُعمَّمة (Delegated Properties) في لغة Kotlin

 استخدام الخاصّيّات المُعمَّمة تستطيع في لغة Kotlin تعريف استخدام (implement) الخاصّيّات يدويًا مرارًا وتكرارًا بكل مرةٍ تحتاجها، ولكن من الأسهل تعريف استخدامها مرةً واحدةً وتخزين هذا التعريف في المكتبة (library) للاستفادة منه كلما دعت الحاجة، وهذا يشمل: الخاصّيّات الكسولة (Lazy property): تُحسب قيمتها مرةً واحدةً فقط وذلك عند الوصول إليها للمرّة الأولى. الخاصّيّات المُراقَبة (observable property): إذ يُستدعَى مسؤول الانتظار (listener) عند حدوث أي تغييرٍ في الخاصّيّة. تخزين الخاصّيّات في map بدلًا من حقلٍ منفصلٍ لكلِّ منها. وتشمل لغة Kotlin ...

المشاريع متعددة المنصات (Multiplatform) في لغة Kotlin

ملاحظة: ما تزال ميّزة تعدّد منصّات العمل تجريبيّة في الإصدار Kotlin 1.2 وبالتالي فإن ما تحتويه هذه الصفحة قد يخضع للتغيير في إصدارات Kotlin القادمة. يسمح مشروع Kotlin متعدّد المنصّات بترجمة الشيفرة ذاتها إلى عدّة منصّاتٍ للعمل (platforms)، وتدعم Kotlin حاليًا البيئات: JVM و JavaScript بالإضافة إلى Native والتي لا زلت قيد التطوير وستُضاف رسميًا فيما بعد. بُنية المشروع متعدّد المنصّات (Multiplatform Project Structure) يتألف من ثلاثة أنواع من الوحدات (modules): الوحدة المشتركة (common module): تحتوي على الشيفرة العامّة التي ...

الدالة ‎‎Any.hashCode()‎‎ في Kotlin

تعيد الدالة hashCode()‎ الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا: تعيد نفس العدد الصحيح دائمًا في كل مرة تستدعى فيها مع الكائن نفسه شريطة عدم تغيُّر أيّ معلومة تستخدمها الدالة equals()‎ عند موازنة هذا الكائن مع غيره. إذا تساوى كائنان بحسب الدالة equals()‎، فيجب أن تعيد الدالة hashCode()‎ شيفرة hash نفسها لكلٍّ منها. البنية العامة open fun hashCode(): Int وجود الكلمة المفتاحيّة open هنا يدل على السماح بإعادة تعريف (override) هذه الدالة في الأصناف الفرعيّة ...

التابع FileTest.any?‎ في روبي

يُمرِّر التابع any?‎ كل عنصر من عناصر المجموعة التي استدعيت معه إلى الكتلة المعطاة ثمَّ يتحقق من عدم إعادة هذه الكتلة القيمة false أو nil مع أي عنصر من تلك العناصر. إن لم تعطَ أية كتلة، فستُضيف روبي الكتلة { ‎|obj| obj } والتي تدفع التابع لإعادة القيمة true عندما لا تكون قيمة أحد عناصر المجموعة هي false أو nil. إن مُرِّر نمط إلى التابع any?‎ بدلًا من الكتلة، فسيتحقق من تطابق هذا النمط مع أحد عناصر المجموعة المعطاة. البنية العامة any? [{ ...

التابع Array.any?‎ في روبي

يتحقق التابع any?‎ إذا كان كل عنصر من عناصر المصفوفة المعطاة مححقًا لشرط منطقي محدد أو كانت قيمة كل عنصر لا تساوي القيمة false (أي لا يعيد أي عنصر القيمة false أو nil عند التحقق من مطابقته للشرط). إن لم تمرَّر أية كتلة برمجية تمثل الشرط، فستضيف روبي الكتلة { ‎ |obj| block} ضمنيًا، وسيعيد حينئذٍ التابع any?‎ القيمة true إن لم يتساوى أي عنصر من عناصر المصفوفة مع القيمة false أو القيمة nil. إن مرِّر نمطٌ (pattern) بدلًا من ...

التصريح عن الكائنات (Object Declarations) وتعابيرها (Expressions) في لغة Kotlin

قد تحتاج في بعض الأحيان لإنشاء كائنٍ بإجراء تعديلاتٍ طفيفةٍ على أحد الأصناف (classes) بدون التصريح عن صنفٍ فرعيٍّ (subclass) له؛ تعالج لغة Java مثل هذه الحالات بالاعتماد على الأصناف الداخليّة المجهولة (anonymous inner classes)، وتُعمِّمها لغة Kotlin من خلال طرح مفهوم التصريح عن الكائنات وتعابيرها. تعابير الكائنات (Object Expressions) لإنشاء كائنٍ من صنفٍ مجهولٍ (anonymous) يرِث من نوعٍ أو أكثر تكون الشيفرة بالشكل: window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { ...

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

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

الأنواع المُعمَّمة (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 لها ...

معاملات المقارنة مع نتائج الاستعلام الفرعي

تستخدم المعاملات SOME و ANY و ALL بهدف المقارنة مع القيم الناتجة (لعمودٍ واحدٍ) عن أحد الاستعلامات الفرعية، وستُذكر تباعًا. معامل ANY إذ تعيد المقارنة قيمة TRUE في حال تطابق التعبير مع قيمة أيّ من السجلات الناتجة عن الاستعلام الفرعي وقيمة FALSE في حال عدم وجود أي نتيجة مطابقة. معامل SOME إذ تعيد المقارنة قيمة TRUE في حال وجود بعض القيم في السجلات الناتجة عن الاستعلام الفرعي والمطابقة لقيمة التعبير الذي تُقارن معه، وهي بهذا مماثلة لنتيجة المعامل ANY. معامل ...

الواجهة ‎‎MatchNamedGroupCollection‎ في Kotlin

توسع هذه الواجهة الصنف MatchGroupCollection عبر تعريف طريقةٍ لجلب المجموعات المتطابقة (matched groups) عن طريق أسمائها عندما يدعم Regex ذلك. interface MatchNamedGroupCollection : MatchGroupCollection الإصدار المطلوب: kotlin 1.1. الدوال (Functions) get تعيد هذه الدالة نسخةً من الصنف MatchGroup إن كانت المجموعة التي تحمل الاسم المُمرّر إليها متطابقَة. الدوال الموروثة (Inherited Functions) get تعيد هذه الدالة نسخةً من الصنف MatchGroup إن كانت المجموعة التي تحمل الاسم المُمرّر إليها متطابقَة. الخاصيات الإضافية (Extension Properties) indices تُستخدَم هذه الخاصيّة للحصول على الفهارس الصحيحة (valid indices) للمصفوفة أو المجموعة (collection). الدوال ...

الواجهة ‎‎MatchGroupCollection‎ في Kotlin

تمثل الواجهة MatchGroupCollection مجموعةً (collection) من الفئات المرصودة (captured groups) عند إجراء مطابقة واحدة لتعبير نمطي ما. حجم المجموعة يساوي groupCount + 1، إذ يمثل groupCount عدد الفئات (groups) في التعبير النمطي. الفئات مُفهرسة بدءًا من 1 وحتى groupCount، والفئة ذات الفهرس 0 تقابل كل ما تطابق. يمكن أن يساوي بعض عناصر المجموعة القيمة العدمية (null) في حال كانت الفئة المقابلة في التعبير النمطي اختيارية، ولم يُرصَد أي تطابق من قبل تلك الفئة. interface MatchGroupCollection : Collection<MatchGroup?> الدوال get تعيد هذه ...

الواجهة ‎‎MatchGroupCollection‎ في Kotlin

تمثل الواجهة MatchGroupCollection مجموعةً (collection) من الفئات المرصودة (captured groups) عند إجراء مطابقة واحدة لتعبير نمطي ما. حجم المجموعة يساوي groupCount + 1، إذ يمثل groupCount عدد الفئات (groups) في التعبير النمطي. الفئات مُفهرسة بدءًا من 1 وحتى groupCount، والفئة ذات الفهرس 0 تقابل كل ما تطابق. يمكن أن يساوي بعض عناصر المجموعة القيمة العدمية (null) في حال كانت الفئة المقابلة في التعبير النمطي اختيارية، ولم يُرصَد أي تطابق من قبل تلك الفئة. interface MatchGroupCollection : Collection<MatchGroup?> الدوال get تعيد هذه ...

الواجهة ‎‎MatchNamedGroupCollection‎ في Kotlin

توسع هذه الواجهة الصنف MatchGroupCollection عبر تعريف طريقةٍ لجلب المجموعات المتطابقة (matched groups) عن طريق أسمائها عندما يدعم Regex ذلك. interface MatchNamedGroupCollection : MatchGroupCollection الإصدار المطلوب: kotlin 1.1. الدوال (Functions) get تعيد هذه الدالة نسخةً من الصنف MatchGroup إن كانت المجموعة التي تحمل الاسم المُمرّر إليها متطابقَة. الدوال الموروثة (Inherited Functions) get تعيد هذه الدالة نسخةً من الصنف MatchGroup إن كانت المجموعة التي تحمل الاسم المُمرّر إليها متطابقَة. الخاصيات الإضافية (Extension Properties) indices تُستخدَم هذه الخاصيّة للحصول على الفهارس الصحيحة (valid indices) للمصفوفة أو المجموعة (collection). الدوال ...

التابع Hash.any?‎ في روبي

يمرر التابع any?‎ كل زوج من مفتاح/قيمة من أزواج الكائن Hash المعطى إلى كتلة معينة ثم يعيد القيمة true إن أعادت الكتلة قيمة غير القيمة false أو nil. للمزيد من التفاصيل، اطلع على صفحة التابع Enumerable.any?‎. بنية العامة any? [{ |(key, value)| block }] → true or false القيمة المعادة تعاد القيمة true إن أعادت الكتلة block قيمة غير القيمة false أو nil عند تمرير كل زوج من أزواج الكائن Hash المعطى. انظر أيضا التابع compare_by_identity?‎: يتحقق إذا كان الكائن Hash الذي استدعي معه ...

الأصناف (Classes) والوراثة (Inheritance) في لغة Kotlin

تُستخدم الكلمة المفتاحيّة class للتصريح (declaration) عن الصنف بالصيغة الآتية (اسم الصنف Invoice): class Invoice { } ويحتوي التصريح على اسم الصنف (class name) وترويسة الصنف (class header) (والتي تُحدِّد معاملات النوع والباني الأساسيّ ...إلخ.) وبُنية الصنف (class body) محاطةً بالقوسين {}، وإن كلًا من ترويسة الصنف وبُنيته اختياريتان؛ فإذا كان الصنف خاليًا لا حاجة للأقواس، مثل: class Empty الباني (Constructor) يوجد لكلّ صنف في لغة Kotlin بانٍ رئيسيّ (primary) واحدٌ وبانٍ -أو أكثر- ثانويّ (secondary)، إذ يُعدُّ الباني الرئيسيّ جزءًا من ...

الصنف ‎‎CharSequence‎ في Kotlin

تمثل الواجهة CharSequence سلسلةً من المحارف قابلةً للقراءة. interface CharSequence الخاصيات length تمثل الخاصية CharSequence.length عدد عناصر سلسلة المحارف (CharSequence) المستدعاة معها. الدوال get تجلب الدالة get()‎‎ المحرف ذا الفهرس الممرَّر إليها من سلسلة المحارف المستدعاة معها. subSequence تجلب الدالة subSequence()‎‎ جزءًا محددًا يقع في سلسلة المحارف التي استٌدعيت معها. الدوال الموروثة (Inherited Functions) equals تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معه.  hashCode تعيد الدالة hashCode()‎ الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. toString تحول الدالة toString()‎ الكائن الذي يُستدعى معه إلى سلسلة نصية (String). الخاصيات الإضافية (Extension Properties) ...

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