Kotlin/Topics

من موسوعة حسوب
< Kotlin
مراجعة 15:35، 11 مارس 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (إنشاء الصفحة)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

بُنية لغة Kotlin =

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

توافق Kotlin مع البيئات الأخرى

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

إذ تُستخدَم لغة Kotlin في تطوير تطبيقات الخادم Server ويمكن نشر التطبيقات المكتوبة بها ضمن أيّ مُضيف (host) يدعم تطبيقات Java للويب، وتستفيد من عدد كبير من منصات العمل مثل Spring و Vert.x وغيرها، وتمتاز بقابليتها للتوسّع.

استخدام Kotlin في تطوير تطبيقات Android

تُستخدَم لغة Kotlin في تطوير تطبيقات Android لقوتها في ناحية الأداء (performance) وصِغر حجم التخزين المستخدم لتطبيقاتها، كما وتقبل الإضافات (plugins) في بيئة Android مما يُسرِّع من عملية البرمجة والترجمة (compilation).

استخدام Kotlin في بيئة لغة البرمجة JavaScript

تمتاز لغة Kotlin بسهولة تحويل شيفراتها إلى ما يماثلها في JavaScript آخذة بالحسبان الحجم المثاليّ للتخزين وتحقيق نفس الفعاليّة إذ تتيح إمكانيّة التعامل مع عناصر DOM ومع الرسوميات بالاعتماد على WebGL.

البدء بلغة البرمجة Kotlin

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

تعتمد أساسًا على الحزم (packages) والأصناف (classes) والدوال (functions) والمتحولات بنوعيها var (بقيمة متغيرة) و val (للقراءة فقط) والتعليقات (comments) التوضيحية التي تجعل البرنامج أسهل للقراءة، إضافةَ إلى التعابير الشرطية (conditionals) والحلقات (loops) والمجالات (ranges) والمجموعات (collections) والتحويل ما بين الأنواع (casting).

الاصطلاحات العامّة في اللغة

إذ يُصطلح ما بين مبرمجي Kotlin على بعض البُنى البرمجيّة واستخداماتها بنفس الهدف>

أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي Kotlin

وهي الأنماط المُتَّفق عليها لكتابة الشيفرات في Kotlin وتشمل طرائق التنظيم، وقواعد التسمية، وكيفية التنسيق؛ إضافةً إلى التعليقات التوثيقية.

أساسيات البرمجة في Kotlin

الأنواع الأساسية للبيانات

وهي تشمل الأعداد (Numbers)، والمحارف (Characters)، والقيم الثنائيّة (Booleans)، والمصفوفات (Arrays)، والسلاسل النصية (Strings)، وقيم السلاسل النصية (Literals)، وقوالب السلاسل النصية (String Templates) وغيرها.

الحزم (packages) واستيرادها

إذ يمكن استيراد (import) الحزم والاستفادة مما تحتويه من أصناف ودوال.

التحكم بالتدفق في سياق البرنامج

عبر التعابير الشرطية مثل if و when وكذلك الحلقات مثل for و while و do-while.

أوامر العودة والقفز

وهي الأوامر التي تنقل سياق البرنامج من موقعٍ لآخر مثل return أو break أو continue.

الأصناف والكائنات

الأصناف والوراثة

يُصرَّح عن الأصناف في لغة Kotlin وتُؤخذ نسخٌ عنها وهي ما يُعرف بالكائنات (objects) التي يكون من خلالها الوصول إلى الخاصّيّات والدوال الموجودة في الصنف، يحتوي الصنف على بانٍ رئيسيّ واحدٍ وبانٍ ثانوي أو أكثر، وقد ترتبط الأصناف فيما بينها بعلاقة الوراثة (inheritance) أو التداخل (nesting)، وقد تكون الأصناف من النوع المُجرَّد (abstract).

الخاصيات وحقول البيانات

تحتوي الخاصيات على البيانات ويكون الوصول إليها عبر getter و setter، وتدعم لغة Kotlin كذلك الحقول والخاصيات المساعدة، وتمتاز بأمر التهيئة اللاحقة (late initializing) وإعادة تعريف الخاصّيّات (overriding).

محددات الوصول

وهي المسؤولة عن تحديد آلية الوصول للخاصّيّات أو الدوال أو الأصناف وتشمل: النوع العام (public) والداخليّ (internal) والمحمي (protected) والخاصّ (private).

الإضافات

والتي تُضاف على الدوال أو الخاصيات وذلك لتجنب إعادة بنائها من جديد وهي منفصلة ستاتيكيًا، وقد تحدث كذلك بعض الإضافات على الكائنات المرافقة (companion objects).

أصناف البيانات

الأصناف المحدودة (Sealed Classes)

الحالات المعممة (Generics)

الأصناف المتداخلة (Nested Classes)

أصناف الثوابت المتعددة (Enum)

الكائنات

الإنابة (Delegation)

إنابة الخاصيات (Delegated Properties)

الدوال ودوال lambdas

الدوال

دوال lambdas

الدوال السطرية (inline)

الروتينات المساعدة (coroutines)

متفرقات

التصريحات المتعددة (multi declarations)

المجموعات (Collections)

المجالات (Ranges)

التحقق من الأنواع والتحويل فيما بينها (Casting)

تعبير this

التساوي

التحميل الزائد للمعاملات (Operators Overloading)

التحقّق من Null

الاستثناءات (Exceptions)

الحاشيات (Annontations)

Reflection

البواني الحافظة للنوع (Type-safe Builders)

تسمية الأنواع (Type Aliases)

المشاريع متعددة المنصات (Multi platforms)

مرجعيّات

الكلمات المفتاحية في اللغة (keywords)

الأسئلة الشائعة

مقارنة مع لغة Java