الكلمات المفتاحية (Keywords) والمعاملات (Operators) في لغة Kotlin
< Kotlin
الكلمات المفتاحيّة الثابتة (Hard Keywords)
تُعدُّ الكلمات الآتية كلماتٍ مفتاحيّةً في لغة Kotlin وليس ممكنًا استخدامها كمُعرِّفات (identifiers):
breakلإنهاء تنفيذ الحلقات (loops)classللتصريح عن الأصنافcontinueللاستمرار بالخطوة التالية لأقرب حلقة محيطة (enclosing)doللبدء بحلقة do/while (والتي يُختبَر الشرط فيها لاحقًا)elseلتعريف فرعٍ (branch) من تعبير الشرطifوالذي سيُنفَّذ عندما يكون الشرط بالقيمةfalsefalseلتحديد القيمةfalseمن النوع الثنائيّ (boolean)forللبدء بحلقة forfunللتصريح عن الدالة (function)ifللبدء بتعبير الشرطifin- لتحديد الكائن (object) الذي يتم المرور بعناصره (iterated) في حلقة for
- يُستخدَم كمعاملٍ ضمنيّ (infix) للتحقُّق من انتماء القيمة إلى مجالٍ (range) أو مجموعةٍ (collection) أو أيّ كيانٍ (entity) يُعرِّف التابع
contains - يُستخدَم في تعبير
whenولنفس الهدف السابق - يجعل متحوّل النوع contravariant
!in- يُستخدَم كمعاملٍ للتأكّد من أن القيمة لا تنتمي إلى مجالٍ (range) أو مجموعةٍ (collection) أو أيّ كيانٍ (entity) يُعرِّف التابع
contains - يُستخدَم في تعبير
whenولنفس الهدف السابق
- يُستخدَم كمعاملٍ للتأكّد من أن القيمة لا تنتمي إلى مجالٍ (range) أو مجموعةٍ (collection) أو أيّ كيانٍ (entity) يُعرِّف التابع
interfaceللتصريح عن الواجهةis- للتحقُّق من أنّ القيمة من نوعٍ (type) مُحدَّدٍ
- يُستخدَم في تعبير
whenولنفس الهدف السابق
!is- للتحقُّق من أنّ القيمة ليست من نوعٍ (type) مُحدَّدٍ
- يُستخدَم في تعبير
whenولنفس الهدف السابق
nullهي قيمة ثابتة (constant) تمثِّل مرجعيةً كائنيةً (object reference) لا تشير إلى أيّ كائنٍ.objectللتصريح عن الصنف (class) والكائن (instance) منه معًاpackageلتحديد الحزمة الحاليّة للملف (file)returnللعودة من أقرب دالةٍ محيطةٍ (enclosing function) أو دالةٍ مجهولةٍ (anonymous function)superthisthrowلرمي استثناءٍ (exception)trueلتحديد القيمةtrueمن النوع الثنائيّ (boolean)tryلبدء قسم التعامل مع الاستثناء (exception)typealiasللتصريح عن التسمية البديلة (alias) للأنواعvalللتصريح عن خاصّيّةٍ للقراءة فقط (read-only) أو متحوّلٍ محليّ (local variable)varللتصريح عن خاصّيّة متغيّرةٍ (mutable) أو متحوّلٍ محليّ (local variable)whenللبدء بتعبيرwhen(لتنفيذ إحدى الحالات الفرعيّة الواردة)whileللبدء بحلقةwhile(التي تختبِر الشرط أولًا)
الكلمات المفتاحيّة المرنة (Soft Keywords)
قد تستخدم الكلمات الآتية ككلماتٍ مفتاحية في سياق ما أو كمعرفات في سياق آخر:
by- لتعميم تعريف استخدام الواجهة إلى كائن آخر
- لتعميم تعريف الاستخدام لعمليات الوصول للخاصية إلى كائن آخر
catchللبدء بالجزء الذي يعالج نوع استثناء محددconstructorللتصريح عن بانٍ أساسي أو ثانويdelegateيستخدم كتوصيف لهدف موقع الاستخدامdynamicكمرجعية لنوع ديناميكي في شيفرة Kotlin/JSfieldتستخدم كتوصيف لهدف موقع الاستخدامfileتستخدم كتوصيف لهدف موقع الاستخدامfinallyللبدء بالجزء الذي سيُنفذ عند الخروج من الجزء tryget- لتعريف getter للخاصية
- يستخدم كتوصيف لهدف موقع الاستخدام
importلاستيراد التصريح من حزمة أخرى للملف الحاليinitللبدء بجزء التهيئةparamتستخدم كتوصيف لهدف موقع الاستخدامpropertyتستخدم كتوصيف لهدف موقع الاستخدامreceiverتستخدم كتوصيف لهدف موقع الاستخدامset- لتعريف setter للخاصية
- تستخدم كتوصيف لهدف موقع الاستخدام
setparamتستخدم كتوصيف لهدف موقع الاستخدامwhereلتحديد قيدٍ لمتحول النوع المُعمَّم
المُحدِّدات (Modifier Keywords)
قد تستخدم الكلمات الآتية كمحددات في التصريح ما أو كمعرفات في سياق آخر:
actualللإشارة إلىتعريف الاستخدام الخاص بالمنصة في المشاريع متعددة المنصاتabstractتحديد الصنف أو العنصر من النوع المجردannotationللتصريح عن صنف التوصيفcompanionللتصريح عن الكائن المرافقconstلجعل الخاصّيّة كثابتٍ أثناء التنفيذcrossinlineلمنع الرجوع غير المحلي في تعبير lambda الممرر إلى الدالة السطريةdataلإعلام المترجم بتوليد عناصر قانونية للصنفenumللتصريح عن الثوابت المتعددةexpectلجعل التصريح خاصًا بالمنصة ليتوقع تعريف الاستخدام في وحدة المنصةexternalلجعل التصريح قابلًا لتعريف الاستخدام خارج Kotlin (عبر JNI أو في JavaScript)finalلمنع إعادة تعريف العنصرinfixللسماح باستدعاء الدالة بالتدوين الداخليّinlineلإعلام المترجم بتضمين الدالة وتعبير lambda الممرر لها في موقع الاستدعاءinnerللسماح بالعودة إلى كائن الصنف الخارجي من الصنف المتداخلinternalلتحديد التصريح كمرئيّ في الوحدة الحاليةlateinitتسمح بتهيئة الخاصية غير الفارغة خارج البانيnoinlineتمنع التضمين السطري لتعبير lambda الممرر إلى الدالة السطريةopenللسماح بإنشاء أصناف فرعية من الصنف أو إعادة تعريف عنصرٍ من الصنفoperatorلتحديد الدالة كتحميلٍ زائد للمعامل أو تعريف استخدام الاصطلاحoutلجعل نوع المتحول covariantoverrideلتحديد العنصر كإعادة تعريفٍ لعنصر في الصنف الأعلىprivateلجعل التصريح مرئيًا في الصنف الحالي أو الملف فقطprotectedلجعل التصريح مرئيًا في الصنف الحالي وأصنافه الفرعيةpublicلجعل التصريح مرئيًا في كل مكانreifiedلجعل متحول النوع للدالة السطرية متاحًا للوصول أثناء التنفيذsealedللتصريح عن صنف مغلق (محدود الأصناف الفرعية)suspendتحديد الدالة أو lambda كنوع مؤجل (قابلة للاستخدام كروتينات مساعدة)tailrecلجعل الدالة تعاودية (تسمح للمترجم باستخدام التكرار بدلًا من التعاودية)varargللسماح بتمرير عدد متغير من المتحولات للمتحولات الوسيطة
المُعرِّفات الخاصّة (Special Identifiers)
معرفة لدى المترجم في بعض السياقات ويمكن استخدامها كمعرِّفات في سياقات أخرى:
fieldتستخدم داخل عمليات الوصول إلى الخاصية للإشارة إلى الحقل المساعد للخاصيةitتستخدم داخل lambda للإشارة إلى متحولها الوحيد ضمنيًا
المُعامِلات والرموز الخاصّة (Operators and Special Symbols)
+,-,*,/,%للقيام بالعمليات الحسابية*يُستخدم أيضًا لتمرير مصفوفة إلى متحولٍ متغير العدد
=- معامل الإسناد
- لتحديد القيم الافتراضية للمتحولات
+=,-=,*=,/=,%=معاملات الإسناد المُحسنة++,--معاملات الزيادة والنقصان&&,||,!معاملات العمليات المنطقية and و or و not (وللقيام بالعمليات على مستوى الخانة الثنائية تستخدم الدالة الداخلية الموافقة)==,!=معاملات التساوي (تترجم لاستدعاءاتٍ للدالةequals() وذلك للأنواع غير الأساسية)===,!==معاملات التساوي بالمرجعية<,>,<=,>=معاملات المقارنة (تترجم لاستدعاءاتٍ للدالةcompareTo() وذلك للأنواع غير الأساسية)[,]معامل الوصول المفهرس (تترجم لاستدعاءاتٍ للدالةgetوset)!!للتأكيد على أن التعبير ليس بقيمة null?.للقيام باستدعاءٍ آمنٍ (استدعاء تابع أو الوصول إلى الخاصية عندما لا يحتوي المستقبل على القيمة null?:الحصول على القيمة بالطرف الأيمن إن كانت القيمة بالطرف الأيسر null (معامل elvis)::لإنشاء مرجعية عنصر أو مرجعية صنف..لإنشاء المجال:للفصل ما بين الاسم والنوع في التصريحات?لجعل النوع nullable->- للفصل بين المتحولات وبنية تعبير lambda
- للفصل بين المتحولات وتصريح النوع المعاد في نوع الدالة
- للفصل ما بين الشرط والبنية في فرع الحالات في تعبير when
@- إنشاء توصيف
- مرجعية لتسمية حلقة
- مرجعية لتسمية lambda
- مرجعية لتعبير this من مجال خارجي
- مرجعية للصنف الأعلى الخارجي
;للفصل ما بين التعليمات المتعددة في نفس السطر$مرجعية لمتحولٍ أو تعريف في قالب السلسلة النصية_- بديل عن المتحول غير المستخدم في تعبير lambda
- بديل عن المتحول غير المستخدم في التصريح بالتفكيك