نتائج البحث

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

المقارنة بين لغتيّ البرمجة Java و Kotlin

بعض المواضيع في Java ومعالجتها في Kotlin عالجت لغة Kotlin العديد من المشاكل الموجودة في Java وهي: التحكُّم بالمرجعيّات الفارغة (null references) عبر نظام الأنواع لا وجود للأنواع الخامّ (raw types) تُعدُّ المصفوفات في Kotlin ثابتة (invariant) للدوال (functions) في Kotlin أنواع مناسبة وهذا ما يتعارض مع التحويلات SAM في Java التنوّع في موقع الاستخدام (use-site variance) دون الحاجة إلى المحارف البديلة (wildcards) لا وجود للاستثناءات المُتحقَّق منها (checked exceptions) في Kotlin ما تمتاز به Java ولا تدعمه Kotlin الاستثناءات ...

الخاصية ‎‎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 الخاص بها عبر استدعاء ...

استخدام لغة Kotlin في تطوير تطبيقات الخادم (Server)

تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات الخادم (server)؛ إذ تكون الشيفرات فيها دقيقةً ومعبِّرة، وتمتاز بالتوافقيّة التامّة مع لغة Java ومن السهل تعلُّمها بسرعة. ميزات استخدام لغة Kotlin لتطوير تطبيقات الخادم (Server) القدرة على التعبير (Expressiveness): تساعد مميّزات لغة Kotlin المبتكرَة (مثل دعمها للمنشِئ الحافظ للنوع (type-safe builder) والخاصّيات المُعمّمة (delegated properties)) على إنشاء البنى التجريديّة (abstraction) سهلةِ الاستخدام. قابلية التوسّع (Scalability): تدعم لغة Kotlin ميّزة الروتينات المساعدة (coroutines)، وهي بهذا تتيح -في تطبيقات الخادم- إمكانيّة التوسّع لعددٍ ...

التوصيفات (Annotations) في لغة Kotlin

التصريح عن التوصيف (Annotation Declaration) تُعدُّ التوصيفات إحدى الوسائل لإضافة بياناتٍ توصيفيّةٍ (metadata) إلى الشيفرة، وللتصريح عن التوصيف يُضاف المُحدِّد annotation قبل اسم الصنف، مثل: annotation class Fancy وقد تُحدَّد بعض خواصّ التوصيفات (annotation attributes) باستخدام التوصيفات الآتية (meta-annotations) لتوصيفات الصنف: ‎@Target لتحديد نوع العناصر التي يمكن توصيفها مثل الأصناف (classes) والدوال (functions) والخاصّيّات (properties) والتعابير (expressions) و... إلخ. ‎@Retention لتحديد فيما إن كان التوصيف مُخزَّنًا في ملفات الأصناف المُترجَمة، أو مرئيًا عبر انعكاسٍ (reflection) أثناء التنفيذ (runtime) (وكلاهما محقُّق بالحالة ...

أسئلة شائعة عن لغة Kotlin

ما هي لغة Kotlin؟ تُعدُّ Kotlin إحدى لغات البرمجة مفتوحة المصدر (OSS) والمكتوبة ستاتيكيًّا، وتستهدف كلًا من بيئة JVM و Android و JavaScript و Native، وقد طُوِّرت من قِبل شركة JetBrains بدءًا من العام 2010 حيث كانت مفتوحة المصدر منذ بداياتها الأولى، ونٌشر الإصدار الرسميّ Kotlin 1.0 في الشهر الثاني (شباط) من عام 2016. ما النسخة الحاليّة للغة Kotlin؟ نٌشر الإصدار الأخير للغة Kotlin في الأوّل من الشهر الثالث (آذار) من عام 2018 وهو الإصدار Kotlin 1.2.30. هل Kotlin مجانيّة؟ ...

استخدام لغة Kotlin للتطوير في بيئة Android

تُعدُّ لغة Kotlin أداةً مناسبةً لتطوير تطبيقات Android لأنّها تزوِّد بمنصةٍ للعمل في نظام Android بميّزات لغات البرمجة الحديثة بدون فرض أي قيودٍ جديدة. ميزات استخدام لغة Kotlin للتطوير في بيئة Android التوافقيّة (Compitability): تتوافق لغة Kotlin كليًّا مع بيئة JDK6، وبهذا تتيح  تشغيل التطبيقات المكتوبة بلغة Kotlin على الأجهزة ذات الإصدارات الأقدم من أنظمة Android بدون أي مشاكل تُذكر، كما وتدعم برمجيةُ Android Studio أدوات لغة Kotlin بشكلٍ تامّ ومتوافقٍ مع أنظمة بناء Android. الأداء (Performance): تعمل التطبيقات المكتوبة ...

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

تتحقق الدالة isJavaIdentifierPart()‎ إن كان من المحتمل أن يكون المحرف الذي استٌدعي معها جزءًا من مُعرِّف جافا (Java identifier) وليس المحرف الأول من المُعرّف. البنية العامة inline fun Char.isJavaIdentifierPart(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان من المحتمل أن يكون المحرف المعطى جزءًا من مُعرِّف جافا (Java identifier) وليس المحرف الأول من المُعرّف، أو القيمة false خلاف ذلك. أمثلة ...

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

تتحقق الدالة isJavaIdentifierPart()‎ إن كان من المحتمل أن يكون المحرف الذي استٌدعي معها جزءًا من مُعرِّف جافا (Java identifier) وليس المحرف الأول من المُعرّف. البنية العامة inline fun Char.isJavaIdentifierPart(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان من المحتمل أن يكون المحرف المعطى جزءًا من مُعرِّف جافا (Java identifier) وليس المحرف الأول من المُعرّف، أو القيمة false خلاف ذلك. أمثلة ...

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

تتحقق الدالة isJavaIdentifierStart()‎ إن كان يُسمَح أن يكون المحرف الذي استٌدعي معها المحرف الأول من مُعرِّف جافا (Java identifier). البنية العامة inline fun Char.isJavaIdentifierStart(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان يسمح أن يكون المحرف الذي استٌدعي معها المحرف الأول من مُعرِّف جافا (Java identifier)، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isJavaIdentifierStart()‎ لمعرفة أيُّ المحرفين التاليين يسمح ...

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

تتحقق الدالة isJavaIdentifierStart()‎ إن كان يُسمَح أن يكون المحرف الذي استٌدعي معها المحرف الأول من مُعرِّف جافا (Java identifier). البنية العامة inline fun Char.isJavaIdentifierStart(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان يسمح أن يكون المحرف الذي استٌدعي معها المحرف الأول من مُعرِّف جافا (Java identifier)، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isJavaIdentifierStart()‎ لمعرفة أيُّ المحرفين التاليين يسمح ...

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

تتحقق الدالة isIdentifierIgnorable()‎ إن كان المحرف الذي استٌدعي معها محرفًا قابلًا للإهمال (ignorable character) في مُعرِّفات جافا (Java identifier) أو معرِّفات الترميز الموحَّد (Unicode identifier). البنية العامة inline fun Char.isIdentifierIgnorable(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى محرفًا قابلًا للإهمال (ignorable character) في مُعرِّفات جافا (Java identifier) أو معرِّفات الترميز الموحَّد (Unicode identifier)، أو تعاد القيمة false ...

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

تتحقق الدالة isIdentifierIgnorable()‎ إن كان المحرف الذي استٌدعي معها محرفًا قابلًا للإهمال (ignorable character) في مُعرِّفات جافا (Java identifier) أو معرِّفات الترميز الموحَّد (Unicode identifier). البنية العامة inline fun Char.isIdentifierIgnorable(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى محرفًا قابلًا للإهمال (ignorable character) في مُعرِّفات جافا (Java identifier) أو معرِّفات الترميز الموحَّد (Unicode identifier)، أو تعاد القيمة false ...

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

تتحقق الدالة isWhitespace()‎ إن كان المحرف الذي استٌدعي معها هو مسافة بيضاء (whitespace). البنية العامة actual fun Char.isWhitespace(): Boolean القيم المعادة تعاد القيمة true إن كان المحرف الذي استٌدعي معها هو مسافة بيضاء، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isWhitespace()‎ لمعرفة أي المحرفين التاليين هو مسافة بيضاء: fun main(args: Array<String>) { val x = '_' val y = ' ' print(x.isWhitespace()) // false ...

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

تتحقق الدالة isWhitespace()‎ إن كان المحرف الذي استٌدعي معها هو مسافة بيضاء (whitespace). البنية العامة actual fun Char.isWhitespace(): Boolean القيم المعادة تعاد القيمة true إن كان المحرف الذي استٌدعي معها هو مسافة بيضاء، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isWhitespace()‎ لمعرفة أي المحرفين التاليين هو مسافة بيضاء: fun main(args: Array<String>) { val x = '_' val y = ' ' print(x.isWhitespace()) // false ...

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

تتحقق الدالة isLetterOrDigit()‎ إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا أو رقمًا. البنية العامة inline fun Char.isLetterOrDigit(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف (character) المعطى حرفًا أبجديًا أو رقمًا، أو تعاد القيمة false خلاف ذلك. أمثلة استعمال الدالة isLetterOrDigit()‎ للتحقق من كون المحرف المراد استعماله حرفًا أبجديًا أو رقمًا: fun main(args: Array<String>) { val ...

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

تتحقق الدالة isDigit()‎ إن كان المحرف الذي استٌدعيت معه رقمًا أم لا. البنية العامة inline fun Char.isDigit(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن حال كان المحرف المعطى رقمًا، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isDigit()‎ للتحقق من عدَّة محارف إن كانت رقمًا أم لا: fun main(args: Array<String>) { val x = 'a' ...

الدالة text.isISOControl()‎ في Kotlin

تتحقق الدالة isISOControl()‎ إن كان المحرف الذي استٌدعي معها هو أحد محارف تحكمISO ‎‎‏ ‎ISO control character)‎‎‎). البنية العامة inline fun Char.isISOControl(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى هو أحد محارف تحكمISO ‎‎‏، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isISOControl()‎ لمعرفة أيُّ المحرفين التاليين هو من أحد محارف تحكم ISO: fun main(args: Array<String>) { ...

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

تتحقق الدالة isLowSurrogate()‎ إن كان المحرف الذي استٌدعي معها بديلًا سفليًّا لعدد بتات الترميز الموحد (Unicode low-surrogate code unit). البنية العامة inline actual fun Char.isLowSurrogate(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى بديلًا سفليًّا لعدد بتات الترميز الموحد، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isLowSurrogate()‎ لمعرفة أي المحرفيين التاليين هو بديل سفلي لعدد بتات الترميز الموحد: fun main(args: Array<String>) ...

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

تتحقق الدالة isLowSurrogate()‎ إن كان المحرف الذي استٌدعي معها بديلًا سفليًّا لعدد بتات الترميز الموحد (Unicode low-surrogate code unit). البنية العامة inline actual fun Char.isLowSurrogate(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى بديلًا سفليًّا لعدد بتات الترميز الموحد، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isLowSurrogate()‎ لمعرفة أي المحرفيين التاليين هو بديل سفلي لعدد بتات الترميز الموحد: fun main(args: Array<String>) ...

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

تتحقق الدالة isTitleCase()‎ إن كان المحرف الذي استٌدعي معها محرفًا عُنوانيًا (titlecase). تتكون هذه المحارف عادةً من محرفين ملتصقين، مثل 'Dž' أو 'Nj'، إذ يعاملان وكأنَّهما محرفٌ واحدٌ فقط. البنية العامة inline fun Char.isTitleCase(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى محرفًا عُنوانيًا (titlecase)، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isTitleCase()‎لمعرفة أي المحارف التالية هو محرفٌ ...

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

تتحقق الدالة isLetter()‎ إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا. البنية العامة inline fun Char.isLetter(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف (character) المعطى حرفًا أبجديًا، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isLetter()‎ للتحقق من كون المحرف المراد استعماله حرفًا أبجديًا: fun main(args: Array<String>) { val x = 'a' ...

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

تتحقق الدالة isLetter()‎ إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا. البنية العامة inline fun Char.isLetter(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف (character) المعطى حرفًا أبجديًا، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isLetter()‎ للتحقق من كون المحرف المراد استعماله حرفًا أبجديًا: fun main(args: Array<String>) { val x = 'a' ...

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

تتحقق الدالة isLetterOrDigit()‎ إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا أو رقمًا. البنية العامة inline fun Char.isLetterOrDigit(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف (character) المعطى حرفًا أبجديًا أو رقمًا، أو تعاد القيمة false خلاف ذلك. أمثلة استعمال الدالة isLetterOrDigit()‎ للتحقق من كون المحرف المراد استعماله حرفًا أبجديًا أو رقمًا: fun main(args: Array<String>) { val ...

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

تتحقق الدالة isUpperCase()‎ إن كان الحرف الذي استٌدعي معها حرفًا كبيرًا (upper case). البنية العامة inline fun Char.isUpperCase(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان الحرف الذي استٌدعي معها حرفًا كبيرًا، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isUpperCase()‎ لمعرفة إن كان الحرفان التاليان متساويين: fun main(args: Array<String>) { val x = 'a' ...

الدالة text.isISOControl()‎ في Kotlin

تتحقق الدالة isISOControl()‎ إن كان المحرف الذي استٌدعي معها هو أحد محارف تحكمISO ‎‎‏ ‎ISO control character)‎‎‎). البنية العامة inline fun Char.isISOControl(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى هو أحد محارف تحكمISO ‎‎‏، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isISOControl()‎ لمعرفة أيُّ المحرفين التاليين هو من أحد محارف تحكم ISO: fun main(args: Array<String>) { ...

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

تتحقق الدالة isLowerCase()‎ إن كان الحرف الذي استٌدعي معها حرفًا صغيرًا (lower case). البنية العامة inline fun Char.isLowerCase(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان الحرف الذي استٌدعي معها حرفًا صغيرًا، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isLowerCase()‎ لمعرفة إن كان الحرفان التاليان متساويين: fun main(args: Array<String>) { val x = 'a' val y = ...

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

تتحقق الدالة isHighSurrogate()‎ إن كان المحرف الذي استٌدعي معها بديلًا علويًا لعدد بتات الترميز الموحد (Unicode high-surrogate code unit). البنية العامة inline actual fun Char.isHighSurrogate(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى بديلًا علويًا لعدد بتات الترميز الموحد، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isHighSurrogate()‎ لمعرفة أي المحرفين التاليين هو بديلٌ علويٌّ لعدد بتات الترميز الموحد: fun main(args: ...

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

تتحقق الدالة isDefined()‎ إن كان المحرف (Unicode code point) الذي استٌدعيت معها مُعرّفًا في الترميز الموحَّد (Unicode) أم لا. البنية العامة inline fun Char.isDefined(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف (Unicode code point) المعطى مُعرّفًا في الترميز الموحَّد (Unicode)، أو القيمة false خلاف ذلك. أمثلة مثالٌ على استعمال الدالة isDefined()‎: fun main(args: Array<String>) { val x = 'a' print(x.isDefined()) // true } انظر ...

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

تتحقق الدالة isLowerCase()‎ إن كان الحرف الذي استٌدعي معها حرفًا صغيرًا (lower case). البنية العامة inline fun Char.isLowerCase(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان الحرف الذي استٌدعي معها حرفًا صغيرًا، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isLowerCase()‎ لمعرفة إن كان الحرفان التاليان متساويين: fun main(args: Array<String>) { val x = 'a' val y = ...

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

تتحقق الدالة isUpperCase()‎ إن كان الحرف الذي استٌدعي معها حرفًا كبيرًا (upper case). البنية العامة inline fun Char.isUpperCase(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان الحرف الذي استٌدعي معها حرفًا كبيرًا، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isUpperCase()‎ لمعرفة إن كان الحرفان التاليان متساويين: fun main(args: Array<String>) { val x = 'a' ...

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

تتحقق الدالة isSurrogate()‎ إن كان المحرف الذي استٌدعي معها بديلًا لعدد بتات الترميز الموحد (Unicode surrogate code unit). البنية العامة fun Char.isSurrogate(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة المنطقية true إن كان المحرف الذي استٌدعي معها بديلًا لعدد بتات الترميز الموحد، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isSurrogate()‎ لمعرفة أي المحرفيين التاليين هو بديل لعدد بتات الترميز الموحد: fun main(args: Array<String>) { ...

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

تتحقق الدالة isSurrogate()‎ إن كان المحرف الذي استٌدعي معها بديلًا لعدد بتات الترميز الموحد (Unicode surrogate code unit). البنية العامة fun Char.isSurrogate(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة المنطقية true إن كان المحرف الذي استٌدعي معها بديلًا لعدد بتات الترميز الموحد، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isSurrogate()‎ لمعرفة أي المحرفيين التاليين هو بديل لعدد بتات الترميز الموحد: fun main(args: Array<String>) { ...

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

تتحقق الدالة isHighSurrogate()‎ إن كان المحرف الذي استٌدعي معها بديلًا علويًا لعدد بتات الترميز الموحد (Unicode high-surrogate code unit). البنية العامة inline actual fun Char.isHighSurrogate(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف المعطى بديلًا علويًا لعدد بتات الترميز الموحد، أو القيمة false خلاف ذلك. أمثلة مثالٌ على استعمال الدالة isHighSurrogate()‎: fun main(args: Array<String>) { val x = 'a' val y ...

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

تتحقق الدالة isDefined()‎ إن كان المحرف (Unicode code point) الذي استٌدعي معها مُعرّفًا في الترميز الموحَّد (Unicode) أم لا. البنية العامة inline fun Char.isDefined(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف (Unicode code point) المعطى مُعرّفًا في الترميز الموحَّد (Unicode)، أو القيمة false خلاف ذلك. أمثلة استعمال الدالة isDefined()‎ لمعرفة إن كان المحرف 'أ' العربي معرَّفًا في الترميز ...

الانعكاس (Reflection) في لغة Kotlin

الانعكاس هو مجموعةٌ من مميّزات اللغة والمكتبات التي تسمح بمراقبة بُنية البرنامج أثناء التنفيذ، إذ تولي لغة Kotlin أهميةً كبرى لكلٍّ من الدوال (functions) والخاصّيّات (properties) وتستمر بتتبُّعها (مثل معرفة اسم أو نوع الخاصّيّة والدالة أثناء التنفيذ) وهذا يرتبط ارتباطًا وثيقًا مع استخدام النمط الوظائفيّ (functional) أو التفاعليّ (reactive). ملاحظة: إن الجزء التنفيذيّ (runtime component) المطلوب في منصّة العمل Java لاستخدام ميزات الانعكاس يُوزَّع كملف ‎.jar مستقلٍّ (kotlin-reflect.jar) وذلك بهدف تخفيض حجم التخزين المطلوب لمكتبة التنفيذ (runtime library) للتطبيقات غير ...

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

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

تتحقق الدالة equals()‎ من تساوي محرفين أو سلسلتين نصيتين مع بعضهما بعضًا. البنية العامة actual fun String?.equals( other: String?, ignoreCase: Boolean = false ): Boolean تتحقق الدالة equals()‎ إن كانت السلسلة النصية String التي استُدعيت معها مساويةً للسلسلة النصية other المُمرّرة إليها. إن مرِّر الوسيط ignoreCase وكانت قيمته true، فستُهمَل حالة الحروف (سواءً كبيرة أو صغيرة) أثناء الموازنة بينها. قيمة هذا الوسيط الافتراضية هي false أي أخذُ حالة الحروف بالحسبان. fun Char.equals( ...

Kotlin/Topics

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

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

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

أنواع البيانات (Data Types) في Kotlin

إن كلَّ عنصرٍ في Kotlin يعد كائنًا إذ يمكن استدعاء الدوال (member functions) والخاصّيّات (properties) عبر أي متغيِّر (variable)، ولبعض الأنواع تمثيلها الداخلي الخاص بها؛ فعلى سبيل المثال تُمثَّل الأعداد والمحارف والقيم المنطقية (boolean) كقيمٍ أساسيّةٍ أثناء التشغيل (runtime) ولكنها بالنسبة للمستخدم مجرّد أصنافٍ عادية، وتناقش هذه الصفحة الأنواع الرئيسيّة للبيانات في Kotlin وهي: الأعداد، والمحارف، والقيم المنطقية (boolean)، والمصفوفات، والسلاسل النصيّة. الأعداد (Numbers) تتعامل لغة Kotlin مع البيانات العدديّة بطريقةٍ مماثلةٍ للغة Java ولكن بفوارق بسيطة، فلا تدعم مثلًا ...

الأصناف المتداخلة (Nested) والداخلية (Inner) في لغة Kotlin

الأصناف المتداخلة (Nested) يُمكن للأصناف أن تتداخل فيما بينها، ويتَّضح ذلك عبر المثال الآتي: class Outer {    private val bar: Int = 1    class Nested {        fun foo() = 2    } } val demo = Outer.Nested().foo() // == 2 إذ يتوضَّع الصنف باسم Nested داخل الصنف Outer ، وعند تعريف المتغيِّر demo فهو سيأخذ القيمة من الدالة foo والموجودة في الصنف Nested المُعرَّف بالصنف Outer والتي هي القيمة 2. الأصناف الداخليَّة (Inner Classes) يُمكن تحديد الصنف كصنفٍ داخليٍّ بالكلمة المفتاحيّة inner وذلك بهدف إتاحة الوصول لكافّة عناصر ...

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

يمثل الصنف Char محرفًا بحجم 16 بت مرمزًا بالترميز الموحَّد (Unicode). في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع char الأساسي. class Char : Comparable<Char> الدوال compareTo توازن الدالة compareTo()‎ بين قيمة المحرف الذي استُدعي معها والقيمة المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة المحرف الذي استُدعي معها) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. dec تعيد الدالة dec()‎ المحرف السابق للمحرف الذي ...

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

يمثل الصنف Char محرفًا بحجم 16 بت مرمزًا بالترميز الموحَّد (Unicode). في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع char الأساسي. class Char : Comparable<Char> الدوال compareTo توازن الدالة compareTo()‎ بين قيمة المحرف الذي استُدعي معها والقيمة المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة المحرف الذي استُدعي معها) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. dec تعيد الدالة dec()‎ المحرف السابق للمحرف الذي ...

أصناف الثوابت المُتعدِّدة (Enum Classes) في لغة Kotlin

يتلخَّصُ الاستخدام الرئيسيّ لأصناف الثوابت المتعدَّدة في قدرتها على تعريف الاستخدام (implementing) للثوابت المتعدًّدة الحافظة للنوع (type-safe)، ويُصرَّح عنها بالشكل: enum class Direction { NORTH, SOUTH, WEST, EAST } إذ يُعدُّ كلُّ ثابتٍ فيها كائنًا (object)، ويُفصل فيما بينها بالفاصلة , . التهيئة (Initialization) لمّا كان كلّ ثابتٍ في صنف الثوابت المتعدِّدة (enum) يُعدُّ كائنًا فيمكن إجراء التهيئة كما يلي: enum class Color(val rgb: Int) { RED(0xFF0000), ...

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

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

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

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

الحزم (Packages) في Kotlin

التصريح عن الحزم يبدأ الملف المصدريّ (source file) عادةً بالتصريح (declaration) عن الحزم مثل: package foo.bar fun baz() {} class Goo {} // ... ويتوضع حينها كلُّ ما يحتويه هذا الملف (كالأصناف [classes] والدوال [functions] مثلًا) في الحزمة المُصرَّح عنها ببدايته، ففي الشيفرة السابقة إن الاسم الفعليّ الكامل للدالة baz()‎ هو foo.bar.baz والاسم الكامل للصنف Goo هو foo.bar.Goo. وإذا لم تُحدَّد الحزمة في بداية الملف فإن محتوياته تتبع للحزمة الافتراضيّة "default" التي لا اسم لها. استيراد الحزم الافتراضيّة (Default Imports) يُستورَد عددٌ من الحزم ...

استخدام لغة Kotlin في نطاق JavaScript

تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...

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

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

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