الفرق بين المراجعتين ل"Kotlin/keyword reference"

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

المراجعة الحالية بتاريخ 18:09، 4 يوليو 2018

 الكلمات المفتاحيّة الثابتة (Hard Keywords)

تُعدُّ الكلمات الآتية كلماتٍ مفتاحيّةً في لغة Kotlin وليس ممكنًا استخدامها كمُعرِّفات (identifiers):

الكلمات المفتاحيّة المرنة (Soft Keywords)

قد تُستخدَم الكلمات الآتية ككلماتٍ مفتاحيّةٍ في سياقٍ (context) ما أو كمُعرِّفاتٍ (identifiers) في سياقٍ آخر:

المُحدِّدات (Modifier Keywords)

قد تُستخدَم الكلمات الآتية كمُحدِّداتٍ (modifiers) في التصريحات، أو كمُعرِّفاتٍ (identifiers) في أيّ سياقٍ آخر:

المُعرِّفات الخاصّة (Special Identifiers)

وهي مُعرَّفةٌ لدى المُترجِم (compiler) بسياقٍ معيّنٍ ويمكن استخدامها كمعرِّفات (identifiers) في سياقٍ آخر:

المُعامِلات والرموز الخاصّة (Operators and Special Symbols)

مصادر