نتائج البحث

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

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

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