الفرق بين المراجعتين لصفحة: «Kotlin/keyword reference»
< Kotlin
تعديل مصطلح خاطئ |
ط تعديل مصطلح متحول |
||
| (1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
| سطر 11: | سطر 11: | ||
*<code>do</code> للبدء [[Kotlin/control flow|بحلقة do/while]] (والتي يُختبَر الشرط فيها لاحقًا) | *<code>do</code> للبدء [[Kotlin/control flow|بحلقة do/while]] (والتي يُختبَر الشرط فيها لاحقًا) | ||
*<code>else</code> لتعريف فرعٍ (branch) من [[Kotlin/control flow|تعبير الشرط <code>if</code>]] والذي سيُنفَّذ عندما يكون الشرط بالقيمة <code>false</code> | *<code>else</code> لتعريف فرعٍ (branch) من [[Kotlin/control flow|تعبير الشرط <code>if</code>]] والذي سيُنفَّذ عندما يكون الشرط بالقيمة <code>false</code> | ||
*<code>false</code> لتحديد القيمة <code>false</code> من [[Kotlin/basic types|النوع | *<code>false</code> لتحديد القيمة <code>false</code> من [[Kotlin/basic types|النوع المنطقيّ (boolean)]] | ||
*<code>for</code> للبدء [[Kotlin/control flow|بحلقة for]] | *<code>for</code> للبدء [[Kotlin/control flow|بحلقة for]] | ||
*<code>fun</code> للتصريح عن [[Kotlin/functions|الدالة (function)]] | *<code>fun</code> للتصريح عن [[Kotlin/functions|الدالة (function)]] | ||
| سطر 19: | سطر 19: | ||
**يُستخدَم كمعاملٍ ضمنيّ (infix) للتحقُّق من انتماء القيمة إلى [[Kotlin/ranges|مجالٍ (range)]] أو مجموعةٍ (collection) أو [[Kotlin/operator overloading|أيّ كيانٍ (entity) يُعرِّف التابع <code>contains</code>]] | **يُستخدَم كمعاملٍ ضمنيّ (infix) للتحقُّق من انتماء القيمة إلى [[Kotlin/ranges|مجالٍ (range)]] أو مجموعةٍ (collection) أو [[Kotlin/operator overloading|أيّ كيانٍ (entity) يُعرِّف التابع <code>contains</code>]] | ||
**يُستخدَم في [[Kotlin/control flow|تعبير <code>when</code>]] ولنفس الهدف السابق | **يُستخدَم في [[Kotlin/control flow|تعبير <code>when</code>]] ولنفس الهدف السابق | ||
**يجعل | **يجعل معامل النوع [[Kotlin/generics|contravariant]] | ||
** | ** | ||
| سطر 43: | سطر 43: | ||
**[[Kotlin/classes|لاستدعاء بانٍ (constructor) آخر من نفس الصنف (class) عبر بانٍ ثانويّ (secondary constructor)]] | **[[Kotlin/classes|لاستدعاء بانٍ (constructor) آخر من نفس الصنف (class) عبر بانٍ ثانويّ (secondary constructor)]] | ||
*<code>throw</code> لرمي [[Kotlin/exceptions|استثناءٍ (exception)]] | *<code>throw</code> لرمي [[Kotlin/exceptions|استثناءٍ (exception)]] | ||
*<code>true</code> لتحديد القيمة <code>true</code> من [[Kotlin/basic types|النوع | *<code>true</code> لتحديد القيمة <code>true</code> من [[Kotlin/basic types|النوع المنطقيّ (boolean)]] | ||
*<code>try</code> لبدء [[Kotlin/extensions|قسم التعامل مع الاستثناء (exception)]] | *<code>try</code> لبدء [[Kotlin/extensions|قسم التعامل مع الاستثناء (exception)]] | ||
*<code>typealias</code> للتصريح عن [[Kotlin/type aliases|التسمية البديلة (alias) للأنواع]] | *<code>typealias</code> للتصريح عن [[Kotlin/type aliases|التسمية البديلة (alias) للأنواع]] | ||
*<code>val</code> للتصريح عن [[Kotlin/properties|خاصّيّةٍ للقراءة فقط (read-only)]] أو [[Kotlin/basic syntax| | *<code>val</code> للتصريح عن [[Kotlin/properties|خاصّيّةٍ للقراءة فقط (read-only)]] أو [[Kotlin/basic syntax|متغيِّرٍ محليّ (local variable)]] | ||
*<code>var</code> للتصريح عن [[Kotlin/properties|خاصّيّة متغيّرةٍ (mutable)]] أو [[Kotlin/basic syntax| | *<code>var</code> للتصريح عن [[Kotlin/properties|خاصّيّة متغيّرةٍ (mutable)]] أو [[Kotlin/basic syntax|متغيِّرٍ محليّ (local variable)]] | ||
*<code>when</code> للبدء [[Kotlin/control flow|بتعبير <code>when</code>]] (لتنفيذ إحدى الحالات الفرعيّة الواردة) | *<code>when</code> للبدء [[Kotlin/control flow|بتعبير <code>when</code>]] (لتنفيذ إحدى الحالات الفرعيّة الواردة) | ||
*<code>while</code> للبدء [[Kotlin/control flow|بحلقة <code>while</code>]] (التي تختبِر الشرط أولًا) | *<code>while</code> للبدء [[Kotlin/control flow|بحلقة <code>while</code>]] (التي تختبِر الشرط أولًا) | ||
| سطر 74: | سطر 74: | ||
**تُستخدَم [[Kotlin/annotations|كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)]] | **تُستخدَم [[Kotlin/annotations|كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)]] | ||
*<code>setparam</code>تُستخدَم [[Kotlin/annotations|كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)]] | *<code>setparam</code>تُستخدَم [[Kotlin/annotations|كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)]] | ||
*<code>where</code> لتحديد [[Kotlin/generics|القيود (constraints) | *<code>where</code> لتحديد [[Kotlin/generics|القيود (constraints) لمعامل النوع المُعمَّم]] | ||
==المُحدِّدات (Modifier Keywords)== | ==المُحدِّدات (Modifier Keywords)== | ||
قد تُستخدَم الكلمات الآتية كمُحدِّداتٍ (modifiers) في التصريحات، أو كمُعرِّفاتٍ (identifiers) في أيّ سياقٍ آخر: | قد تُستخدَم الكلمات الآتية كمُحدِّداتٍ (modifiers) في التصريحات، أو كمُعرِّفاتٍ (identifiers) في أيّ سياقٍ آخر: | ||
| سطر 96: | سطر 96: | ||
*<code>open</code> للسماح بإنشاء [[Kotlin/classes|أصناف فرعيّة (subclasses) من الصنف أو إعادة تعريف (override) عنصرٍ منه]] | *<code>open</code> للسماح بإنشاء [[Kotlin/classes|أصناف فرعيّة (subclasses) من الصنف أو إعادة تعريف (override) عنصرٍ منه]] | ||
*<code>operator</code> لتحديد الدالة [[Kotlin/operator overloading|كتحميلٍ زائدٍ (overloading) للمعامِل أو تعريف استخدام اصطلاحيّ]] | *<code>operator</code> لتحديد الدالة [[Kotlin/operator overloading|كتحميلٍ زائدٍ (overloading) للمعامِل أو تعريف استخدام اصطلاحيّ]] | ||
*<code>out</code> لجعل | *<code>out</code> لجعل معامل النوع [[Kotlin/generics|covariant]] | ||
*<code>override</code> لجعل العنصر [[Kotlin/classes|كإعادة تعريفٍ (overriding) لعنصرٍ من الصنف الأعلى (superclass)]] | *<code>override</code> لجعل العنصر [[Kotlin/classes|كإعادة تعريفٍ (overriding) لعنصرٍ من الصنف الأعلى (superclass)]] | ||
*<code>private</code> لجعل التصريح [[Kotlin/visibility modifiers|مرئيًا في الصنف (class) الحاليّ أو الملف (file) فقط]] | *<code>private</code> لجعل التصريح [[Kotlin/visibility modifiers|مرئيًا في الصنف (class) الحاليّ أو الملف (file) فقط]] | ||
*<code>protected</code> لجعل التصريح [[Kotlin/visibility modifiers|مرئيًا في الصنف (class) الحاليّ أو أصنافه الفرعيّة (subclasses)]] | *<code>protected</code> لجعل التصريح [[Kotlin/visibility modifiers|مرئيًا في الصنف (class) الحاليّ أو أصنافه الفرعيّة (subclasses)]] | ||
*<code>public</code> لجعل التصريح [[Kotlin/visibility modifiers|مرئيًا في كلِّ مكان]] | *<code>public</code> لجعل التصريح [[Kotlin/visibility modifiers|مرئيًا في كلِّ مكان]] | ||
*<code>reified</code> لجعل [[Kotlin/inline functions| | *<code>reified</code> لجعل [[Kotlin/inline functions|معامل النوع للدالة المباشرة (inline function) متاحًا للوصول أثناء التنفيذ (runtime)]] | ||
*<code>sealed</code> للتصريح عن [[Kotlin/sealed classes|صنفٍ مغلقٍ ( sealed class) (محدود الأصناف الفرعيّة [subclasses])]] | *<code>sealed</code> للتصريح عن [[Kotlin/sealed classes|صنفٍ مغلقٍ ( sealed class) (محدود الأصناف الفرعيّة [subclasses])]] | ||
*<code>suspend</code> تحديد الدالة (function) أو تعبير lambda [[Kotlin/coroutines|كنوع تأخيرٍ (قابلٍ للاستخدام كروتيناتٍ مساعدة [coroutines])]] | *<code>suspend</code> تحديد الدالة (function) أو تعبير lambda [[Kotlin/coroutines|كنوع تأخيرٍ (قابلٍ للاستخدام كروتيناتٍ مساعدة [coroutines])]] | ||
*<code>tailrec</code> لجعل الدالة [[Kotlin/functions|تعاوديّةً (tail-recursive)]] (تسمح للمترجِم [compiler] باستخدام التكرار [iteration] بدلًا من التعاودية [recursion]) | *<code>tailrec</code> لجعل الدالة [[Kotlin/functions|تعاوديّةً (tail-recursive)]] (تسمح للمترجِم [compiler] باستخدام التكرار [iteration] بدلًا من التعاودية [recursion]) | ||
*<code>vararg</code> للسماح [[Kotlin/functions|بتمرير عددٍ متغيّرٍ من | *<code>vararg</code> للسماح [[Kotlin/functions|بتمرير عددٍ متغيّرٍ من الوسائط (arguments) للمعامل (parameter)]] | ||
==المُعرِّفات الخاصّة (Special Identifiers)== | ==المُعرِّفات الخاصّة (Special Identifiers)== | ||
وهي مُعرَّفةٌ لدى المُترجِم (compiler) بسياقٍ معيّنٍ ويمكن استخدامها كمعرِّفات (identifiers) في سياقٍ آخر: | وهي مُعرَّفةٌ لدى المُترجِم (compiler) بسياقٍ معيّنٍ ويمكن استخدامها كمعرِّفات (identifiers) في سياقٍ آخر: | ||
*<code>field</code> تُستخدَم داخل عمليات الوصول (accessors) إلى الخاصّيّة (property) للإشارة إلى [[Kotlin/properties|الحقل المساعد (backing field) للخاصّيّة]] | *<code>field</code> تُستخدَم داخل عمليات الوصول (accessors) إلى الخاصّيّة (property) للإشارة إلى [[Kotlin/properties|الحقل المساعد (backing field) للخاصّيّة]] | ||
*<code>it</code> تُستخدَم داخل [[Kotlin/lambdas|تعبير lambda للإشارة إلى | *<code>it</code> تُستخدَم داخل [[Kotlin/lambdas|تعبير lambda للإشارة إلى معاملها الوحيد ضمنيًا (implicitly)]] | ||
==المُعامِلات والرموز الخاصّة (Operators and Special Symbols)== | ==المُعامِلات والرموز الخاصّة (Operators and Special Symbols)== | ||
*<code>+</code> و <code>-</code> و <code>*</code> و <code>/</code> و <code>%</code> لتنفيذ العمليات الحسابيّة | *<code>+</code> و <code>-</code> و <code>*</code> و <code>/</code> و <code>%</code> لتنفيذ العمليات الحسابيّة | ||
**<code>*</code> يُستخدَم أيضًا [[Kotlin/functions|لتمرير مصفوفةٍ (array) إلى | **<code>*</code> يُستخدَم أيضًا [[Kotlin/functions|لتمرير مصفوفةٍ (array) إلى معاملٍ (parameter) متغيّرِ العدد]] | ||
*<code>=</code> | *<code>=</code> | ||
**معامل الإسناد (assignment) | **معامل الإسناد (assignment) | ||
**لتحديد [[Kotlin/functions|القيم الافتراضيّة | **لتحديد [[Kotlin/functions|القيم الافتراضيّة للمعاملات (parameters)]] | ||
*<code>+=</code> و <code>-=</code> و <code>*=</code> و <code>/=</code> و <code>%=</code> [[Kotlin/operator overloading|معامِلات الإسناد المُحسَّنة (augmented assignment)]] | *<code>+=</code> و <code>-=</code> و <code>*=</code> و <code>/=</code> و <code>%=</code> [[Kotlin/operator overloading|معامِلات الإسناد المُحسَّنة (augmented assignment)]] | ||
*<code>++</code> و<code>--</code> معاملات [[Kotlin/operator overloading|الزيادة (increment) والنقصان (decrement)]] | *<code>++</code> و<code>--</code> معاملات [[Kotlin/operator overloading|الزيادة (increment) والنقصان (decrement)]] | ||
| سطر 131: | سطر 131: | ||
*<code>?</code> لجعل [[Kotlin/null safety|النوع nullable]] (يقبل القيمة الفارغة null) | *<code>?</code> لجعل [[Kotlin/null safety|النوع nullable]] (يقبل القيمة الفارغة null) | ||
*<code>-></code> | *<code>-></code> | ||
**للفصل بين | **للفصل بين المعاملات (parameters) و<nowiki/>[[Kotlin/lambdas|بُنية تعبير lambda]] | ||
**للفصل بين | **للفصل بين المعاملات (parameters) وتصريح النوع المُعاد في [[Kotlin/lambdas|نوع الدالة (function type)]] | ||
**للفصل بين الشرط والبُنية (block) في الفرع (branch) من [[Kotlin/control flow|تعبير <code>when</code>]] | **للفصل بين الشرط والبُنية (block) في الفرع (branch) من [[Kotlin/control flow|تعبير <code>when</code>]] | ||
*<code>@</code> | *<code>@</code> | ||
| سطر 141: | سطر 141: | ||
**إنشاء مرجعيّةٍ [[Kotlin/classes|للصنف الأعلى الخارجيّ (outer superclass)]] | **إنشاء مرجعيّةٍ [[Kotlin/classes|للصنف الأعلى الخارجيّ (outer superclass)]] | ||
*<code>;</code> للفصل بين التعليمات المتعدِّدة الواقعة في نفس السطر | *<code>;</code> للفصل بين التعليمات المتعدِّدة الواقعة في نفس السطر | ||
*<code>$</code> مرجعيّة | *<code>$</code> مرجعيّة لمتغيِّر (variable) أو تعبيرٍ (expression) في [[Kotlin/basic types|قالب السلسلة النصية (string template)]] | ||
*<code>_</code> | *<code>_</code> | ||
**بديلٌ عن | **بديلٌ عن المعامل غير المُستخدَم في [[Kotlin/lambdas|تعبير lambda]] | ||
**بديلٌ عن | **بديلٌ عن المعامل غير المُستخدَم في [[Kotlin/multi declarations|التصريح بالتفكيك (destructuring declaration)]] | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/docs/reference/keyword-reference.html صفحة الكلمات المفتاحية والمعاملات في التوثيق الرسمي للغة Kotlin]<noinclude>{{DISPLAYTITLE:الكلمات المفتاحية (Keywords) والمعاملات (Operators) في لغة Kotlin}}</noinclude> | *[https://kotlinlang.org/docs/reference/keyword-reference.html صفحة الكلمات المفتاحية والمعاملات في التوثيق الرسمي للغة Kotlin]<noinclude>{{DISPLAYTITLE:الكلمات المفتاحية (Keywords) والمعاملات (Operators) في لغة Kotlin}}</noinclude> | ||
المراجعة الحالية بتاريخ 18:09، 4 يوليو 2018
الكلمات المفتاحيّة الثابتة (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)
قد تُستخدَم الكلمات الآتية ككلماتٍ مفتاحيّةٍ في سياقٍ (context) ما أو كمُعرِّفاتٍ (identifiers) في سياقٍ آخر:
bycatchللبدء بالقسم الذي يُعالِج (handle) نوع استثناءٍ (exception) مُحدَّدconstructorللتصريح عن بانٍ أساسيّ (primary) أو ثانويّ (secondary)delegateتُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)dynamicتُستخدَم كمرجعيةٍ (reference) لنوعٍ ديناميكيٍّ في شيفرة Kotlin/JSfieldتُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)fileتُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)finallyللبدء بالقسم الذي سيُنفَّذُ عند الخروج من الجزءtryget- لتعريف الوصول عبر getter للخاصّيّة
- تُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)
importلاستيراد التصريح من حزمةٍ أخرى للملفّ (file) الحاليinitللبدء بجزء التهيئة (initializer block)paramتُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)propertyتُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)receiverتُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)set- لتعريف الوصول عبر setter للخاصّيّة
- تُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)
setparamتُستخدَم كتوصيفٍ (annotation) لهدف موقع الاستخدام (use-site target)whereلتحديد القيود (constraints) لمعامل النوع المُعمَّم
المُحدِّدات (Modifier Keywords)
قد تُستخدَم الكلمات الآتية كمُحدِّداتٍ (modifiers) في التصريحات، أو كمُعرِّفاتٍ (identifiers) في أيّ سياقٍ آخر:
actualللإشارة إلى تعريف الاستخدام (implementation) الخاصّ بالمنصّة (platform) في المشاريع متعدِّدة المنصّات (multiplatforms)abstractلجعل الصنف (class) (أو عنصرٍ منه) مُجرَّدًاannotationللتصريح عن صنف (class) التوصيفcompanionللتصريح عن الكائن المرافقconstلجعل الخاصّيّة (property) كثابتٍ أثناء التنفيذ (compile-time constant)crossinlineلمنع الرجوع غير المحليّ (non-local return) في تعبير lambda المُمرَّر إلى الدالة المباشرة (inline function)dataلإعلام المُترجِم (compiler) بتوليد عناصر قانونيةٍ للصنف (class)enumللتصريح عن الثوابت المُتعدِّدة (enumeration)expectلجعل التصريح خاصًا بالمنصّة (platform-specific) إذ يُتوقَّع تعريف استخدامه (implementation) في وحدة المنصّةexternalلجعل التصريح قابلًا لتعريف الاستخدام (implementation) خارج Kotlin (عبر JNI أو في JavaScript)finalلمنع إعادة تعريف (overriding) عنصر الصنف (class member)infixللسماح باستدعاء الدالة (function) بالتدوين الداخليّ (infix notation)inlineلإعلام المُترجِم بتضمين الدالة (function) وتعبير lambda المُمرَّر لها مباشرةً (inline) في موقع الاستدعاء (call site)innerللسماح بالإشارة لكائن الصنف الخارجيّ (outer class instance) من الصنف المتداخِل (nested)internalلجعل التصريح مرئيًّا في الوحدة (module) الحاليّةlateinitتسمح بتهيئة (initializing) الخاصّيّة غير الفارغة (non-null property) خارج الباني (constructor)noinlineتمنع التضمين المباشر (inlining) لتعبير lambda المُمرَّر إلى الدالة (function) المباشرةopenللسماح بإنشاء أصناف فرعيّة (subclasses) من الصنف أو إعادة تعريف (override) عنصرٍ منهoperatorلتحديد الدالة كتحميلٍ زائدٍ (overloading) للمعامِل أو تعريف استخدام اصطلاحيّoutلجعل معامل النوع covariantoverrideلجعل العنصر كإعادة تعريفٍ (overriding) لعنصرٍ من الصنف الأعلى (superclass)privateلجعل التصريح مرئيًا في الصنف (class) الحاليّ أو الملف (file) فقطprotectedلجعل التصريح مرئيًا في الصنف (class) الحاليّ أو أصنافه الفرعيّة (subclasses)publicلجعل التصريح مرئيًا في كلِّ مكانreifiedلجعل معامل النوع للدالة المباشرة (inline function) متاحًا للوصول أثناء التنفيذ (runtime)sealedللتصريح عن صنفٍ مغلقٍ ( sealed class) (محدود الأصناف الفرعيّة [subclasses])suspendتحديد الدالة (function) أو تعبير lambda كنوع تأخيرٍ (قابلٍ للاستخدام كروتيناتٍ مساعدة [coroutines])tailrecلجعل الدالة تعاوديّةً (tail-recursive) (تسمح للمترجِم [compiler] باستخدام التكرار [iteration] بدلًا من التعاودية [recursion])varargللسماح بتمرير عددٍ متغيّرٍ من الوسائط (arguments) للمعامل (parameter)
المُعرِّفات الخاصّة (Special Identifiers)
وهي مُعرَّفةٌ لدى المُترجِم (compiler) بسياقٍ معيّنٍ ويمكن استخدامها كمعرِّفات (identifiers) في سياقٍ آخر:
fieldتُستخدَم داخل عمليات الوصول (accessors) إلى الخاصّيّة (property) للإشارة إلى الحقل المساعد (backing field) للخاصّيّةitتُستخدَم داخل تعبير lambda للإشارة إلى معاملها الوحيد ضمنيًا (implicitly)
المُعامِلات والرموز الخاصّة (Operators and Special Symbols)
+و-و*و/و%لتنفيذ العمليات الحسابيّة*يُستخدَم أيضًا لتمرير مصفوفةٍ (array) إلى معاملٍ (parameter) متغيّرِ العدد
=- معامل الإسناد (assignment)
- لتحديد القيم الافتراضيّة للمعاملات (parameters)
-
+=و -= و *= و /= و %= معامِلات الإسناد المُحسَّنة (augmented assignment) ++و--معاملات الزيادة (increment) والنقصان (decrement)&&و||و!معاملات العمليّات المنطقيّة and و or و not (وللقيام بالعمليات على مستوى الخانة الثنائيّة [bitwise] تُستخدَم الدالة الموافقة بالصيغة الداخليّة [infix function])==و!= معاملات التساوي (تُترجَم لاستدعاءاتٍ للدالةequals() وذلك للأنواع غير الأساسيّة [non-primitive])===و!== معاملات التساوي بالمرجعيّة (referential equality)-
< و> و <= و>= معاملات المقارنة (تُترجَم لاستدعاءاتٍ للدالةcompareTo() وذلك للأنواع غير الأساسيّة [non-primitive]) [و]معامل الوصول المُفهرَس (indexed) (تُترجَم لاستدعاءاتٍ للدالتينgetوset)!!للتأكيد على أنّ التعبير ليس بقيمةnull?. للاستدعاء الآمن (safe call) (استدعاء تابعٍ [method] أو الوصول إلى الخاصّيّة [property] عندما لا يكون المُستقبِل [receiver] بالقيمةnull)?: الحصول على القيمة بالطرف الأيمن إن كانت القيمة بالطرف الأيسرnull(معامل elvis)::لإنشاء مرجعيّة عنصرٍ (member reference) أو مرجعيّة صنفٍ (class reference)..لإنشاء المجال (range):للفصل ما بين الاسم والنوع (type) في التصريحات?لجعل النوع nullable (يقبل القيمة الفارغة null)->- للفصل بين المعاملات (parameters) وبُنية تعبير lambda
- للفصل بين المعاملات (parameters) وتصريح النوع المُعاد في نوع الدالة (function type)
- للفصل بين الشرط والبُنية (block) في الفرع (branch) من تعبير
when
@- إنشاء توصيفٍ (annotation)
- إنشاء مرجعيّةٍ لتسمية الحلقة ( loop label)
- إنشاء مرجعيّةٍ لتسمية تعبير lambda
- إنشاء مرجعيّةٍ لتعبير
thisمن مجالٍ خارجيّ (outer scope) - إنشاء مرجعيّةٍ للصنف الأعلى الخارجيّ (outer superclass)
;للفصل بين التعليمات المتعدِّدة الواقعة في نفس السطر$مرجعيّة لمتغيِّر (variable) أو تعبيرٍ (expression) في قالب السلسلة النصية (string template)_- بديلٌ عن المعامل غير المُستخدَم في تعبير lambda
- بديلٌ عن المعامل غير المُستخدَم في التصريح بالتفكيك (destructuring declaration)