نتائج البحث

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

class في JavaScript

التصريح عن الصنف (class declaration) يؤدي إلى إنشاء صنف جديد له اسمٌ معيّن يستخدم الوراثة عبر سلسلة prototype. يمكنك أيضًا تعريف الأصناف عبر تعابير تعريف الأصناف (class expression)، لكن التصريح عن الصنف بهذه الطريقة يختلف عن استخدام تعابير تعريف الأصناف في أنَّه لا يسمح بإعادة التصريح عن الصنف مرةً أخرى، وسيرمي (throw) خطأً إن حاولنا ذلك. البنية العامة class name [extends] { // محتويات الصنف } الوصف كما في تعابير تعريف الأصناف، ستُنفَّذ التعابر البرمجية الموجودة ضمن الصنف في نمط ...

أصناف البيانات (Data Classes) في لغة Kotlin

تُنشَأ بعض الأصناف بهدف تخزين البيانات فيها بشكلٍ أساسيّ، وبالتالي فإنّ كلّ ما تقوم به هذه الأصناف من وظائف يرتبط بالبيانات، وهذا ما يُسمى بأصناف البيانات في لغة Kotlin وتُعرَّف بالمُحدِّد data كما يلي: data class User(val name: String, val age: Int) قواعد عامّة يقوم المُترجِم في الأصناف من هذه النوع باشتقاق العناصر (deriving members) الآتية من كلِّ الخاصّيّات المُعرَّفة في الباني الأساسيّ (primary constructor): كلًا من equals()‎ و hashCode()‎ الدالة toString()‎ بشكلها ‎"User(name=John, age=42‎)‎"‎ الدوال بالصيغة componentN() functions بما ...

الأصناف (Classes) والوراثة (Inheritance) في لغة Kotlin

تُستخدم الكلمة المفتاحيّة class للتصريح (declaration) عن الصنف بالصيغة الآتية (اسم الصنف Invoice): class Invoice { } ويحتوي التصريح على اسم الصنف (class name) وترويسة الصنف (class header) (والتي تُحدِّد معاملات النوع والباني الأساسيّ ...إلخ.) وبُنية الصنف (class body) محاطةً بالقوسين {}، وإن كلًا من ترويسة الصنف وبُنيته اختياريتان؛ فإذا كان الصنف خاليًا لا حاجة للأقواس، مثل: class Empty الباني (Constructor) يوجد لكلّ صنف في لغة Kotlin بانٍ رئيسيّ (primary) واحدٌ وبانٍ -أو أكثر- ثانويّ (secondary)، إذ يُعدُّ الباني الرئيسيّ جزءًا من ...

الأصناف المُغلَقة (Sealed Classes) في لغة Kotlin

تُستخدَم الأصناف المُغلَقة لتمثيل الهرميّة (hierarchy) المحدودة للأصناف؛ وذلك عندما يكون نوع القيمة هو أحد الأنواع الموجودة في مجموعةٍ مُحدَّدةٍ (limited set) وليس أيّ نوع آخر، وبالتالي تُعدُّ هذه الأصناف إضافةً (extension) لأصناف الثوابت المُتعدَّدة (enum classes)، إذ إنّ مجموعة القيم لنوع enum محدودة أيضًا ولكل ثابت فيها نسخةٌ (instance) واحدةٌ فقط، بينما يمكن أن يكون للصنف الفرعيّ (subclass) من الصنف المغلق أكثر من نسخةٍ تحتوي على الحالة (case). ويُستخدَم المُحدِّد (modifier)‏ sealed قبل اسم الصنف للتصريح عن أنّه من ...

الصنف Class في روبي

تُعدُّ الأصناف كائناتٍ من الدرجة الأولى (first-class objects) في روبي، وتعدُّ جميعها نُسخٌ من الصنف Class. عادةً، يمكن عادةً إنشاء صنف جديد بالشكل التالي: class Name # تكتب هنا الشيفرة التي تعرف سلوك الصنف end عندما يُنشَأ صنف جديد، يهيَّأ كائن من النوع Class ويسند إلى ثابت عام (global constant، هو Name في المثال السابق). عند استدعاء Name.new لإنشاء كائن جديد، يُنفَّذ التابع new الخاص بالصنف Class بشكل افتراضي. يمكن إثبات ذلك من خلال إعادة تعريف التابع new: class Class alias old_new ...

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

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

الأصناف الخاملة (Lazy Classes)

توصيف المشكلة وجود بعض الأصناف (classes) قليلة الاستخدام ولا أهمية لها في البرنامج، ويجدر التخلُّص منها إذ إنّ فهم وصيانة الأصناف يكلِّفان الوقت والجهد. أسبابها يكون تصميم الصنف بدايةً لأداء مهامٍ (functionality) معيّنة، ولكنّه قد يصبح صغيرًا لا أهميّة له من بعد الكثير من عمليات إعادة التصميم (refactoring). قد تُخصَّص بعض الأصناف لدعم التطوير المستقبلي للبرنامج (كالتخطيط المُسبق لميّزاتٍ ستُضاف لاحقًا)، وتصبح تلك الأصناف خاملةً عندما لا يحدث أيُّ تطويرٍ فيما بعد. وما الحل؟ تضمين الأصناف (inline classes) للعناصر (components) ...

أصناف البيانات (Data Classes)

توصيف المشكلة وجود العديد من أصناف البيانات في الشيفرة، والتي تُستخدَم لتخزين البيانات التي تحتاج إليها الأصناف الأخرى، إذ تحتوي على حقولٍ للبيانات (fields) وتوابع للوصول إليها (accessors) أي توابعَ للحصول على بيانات الحقول (getter) وأخرى لتعديلها (setter)، ولا تقوم هذه الأصناف بأيّ مهمّة أخرى ولا تستطيع كذلك تنفيذ العمليات (operations) على بياناتها بمفردها. أسبابها من الطبيعي أن يحتوي الصنف -بادئ الأمر- على القليل من الحقول العامّة (public fields) وبعض التوابع للوصول إليها (accessors) ولكن إن استمرَّ الصنف كذلك فلن ...

دمج الصنف (Inline Class)

المشكلة وجود صنفٍ (class) لا يقوم بأيّ مهمّة فعليّة ولا يُخطَّط لإضافة مهامٍ إليه لاحقًا. الحل نقل كافّة الميّزات (features) من هذا الصنف إلى صنفٍ آخر. مثال قبل إعادة التصميم يحتوي الصنف Person على حقلٍ واحدٍ باسم name وتابعٍٍ للحصول على رقم الهاتف getTelephoneNumber ولاشيء آخر، أمّا الصنف TelephoneNumber فهو يحتوي على حقلين باسم officeAreaCode و officeNumber بالإضافة إلى التابع السابق getTelephoneNumber، كما هو موضَّحٌ في مخطط الأصناف الآتي: الصنف Person يحتوي على حقلٍ واحدٍ باسم name وتابعٍٍ للحصول على ...

استخراج الصنف (Extract Class)

المشكلة وجود صنفٍ (class) واحدٍ يقوم بمهامٍ عديدةٍ يمكن توزيعها على صنفين. الحل إنشاء صنفٍ جديدٍ ونقل بعض الحقول (fields) والتوابع (methods) إليه، والتي تتعلَّق بالمهام الوظيفيّة (functionality) لهذا الصنف الجديد. مثال قبل إعادة التصميم يحتوي الصنف Person على عددٍ من الحقول كاسم الشخص (name) ورمز منطقة المكتب (officeAreaCode) ورقمه (officeNumber)، وتابعًا للحصول على هذا الرقم باسم getTelephoneNumber، كما في مخطط الأصناف الآتي: الصنف Person يحتوي على عددٍ من الحقول كاسم الشخص (name) ورمز منطقة المكتب (officeAreaCode) ورقمه (officeNumber)، وتابعًا ...

CSS/Topics/Pseudo Classes

الصنف التمثيل ‎:active العناصر (مثل الأزرار) التي جرى تفعيلها من المستخدم. وعند استخدام الفأرة سيبدأ «تفعيل» العنصر عندما يضغط المستخدم على الزر الرئيسي لها وينتهي عند إفلات الضغط على ذاك الزر. ‎:checked أزرار انتقاء (radio button) أو صناديق تأشير (checkbox) أو خيارات <option> في عنصر<select> تم تحديدها أو انتقاؤها. يمكن أن يُفعِّل المستخدم هذه الحالة بتفعيل أو انتقاء العنصر. ‎:default أي عنصر مُختار افتراضيًا بين مجموعة من العناصر المتعلقة به؛ ويمكن استخدام هذا الصنف الزائف على أيّة أزرار عادية <button> أو أزرار انتقاء (radio button) ...

الأصناف الواسعة (Large Classes)

توصيف المشكلة احتواء الصنف (class) العديدَ من الحقول (fields) والتوابع (methods) وشيفرةً بأسطرَ كثيرةٍ. أسبابها تبدأ الأصناف صغيرةً ليزداد حجمها مع استمرار تطوُّر البرنامج (كما الحال بالتوابع الطويلة) لأنَّ المبرمج يرى أنَّ إضافة ميِّزاتٍ (features) جديدةٍ في صنفٍ موجودٍ مسبقًا أكثر سهولةً من إنشاء أصنافٍ جديدةٍ مخصَّصةٍ لها. وما الحل؟ الحل بسيطٌ جدًا؛ وهو تقسيم الصنف، وذلك بإحدى الوسائل الآتية: إنشاء صنفٍ جديدٍ (Extract Class) إن كان من الممكن فصلُ بعض مهامّ الصنف الحاليّ ونقلها للصنف الجديد. إنشاء صنفٍ فرعيٍّ ...

محدد الأصناف ‎"‎.class"‎‎ في jQuery

محدد الأصناف الوصف يُستخدَم مُحدِّد الأصناف في تحديد كافّة العناصر التي تمتلك الصّنف المُعطَى. ‎jQuery( ".class" )‎ أضيفت في الإصدار: 1.0. class الصّنف المطلوب البحث عنه. يُمكِن للعنصر أن يمتلك عدّة أصناف، يجب أن يتطابق واحد منها فقط مع هذه القيمة. تستخدم jQuery لأجل مُحدِّدات الأصناف الدالة ‎getElementsByClassName()‎ الأصليّة في JavaScript إن كان المتصفّح يدعمها. أمثلة إيجاد العنصر الذي يمتلك الصّنف myClass: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>class مثال عن المحدد</title> <style> div, span { ...

التابع new في الصنف Class في روبي

يستدعي التابع new التابعَ allocate لإنشاء كائن جديد من الصنف class، ثم يستدعي التابع initialize مع ذلك الكائن المنشأ ويُمرِّر إليه وسائط محددة. هذا هو التابع الذي يُستدعى كلما أريد إنشاء كائن باستخدام التابع ‎.new. البنية العامة new(args, ...) → obj المعاملات args الوسيط المراد تمريره إلى التابع initialize عند استدعائه. ... الوسائط الأخرى المراد تمريرها إلى التابع initialize عند استدعائه. القيم المعادة يعاد الكائن الذي أنشئ. انظر أيضًا التابع allocate: يحجز مساحةً من الذاكرة لكائن جديد من الصنف class ...

التابع superclass في الصنف Class في روبي

يعيد التابع superclass الصنف الأب (superclass) للصنف المستدعى معه. البنية العامة superclass → a_super_class or nil القيمة المعادة يعاد الصنف الأب للصنف المعطى أو القيمة nil إن لم يكن للصنف المعطى صنف أب. أمثلة مثال على استخدام التابع superclass: File.superclass #=> IO IO.superclass #=> Object Object.superclass #=> BasicObject class Foo; end class Bar < Foo; end Bar.superclass ...

التابع allocate في الصنف Class في روبي

يحجز التابع allocate مساحةً من الذاكرة لكائن جديد من الصنف class دون استدعاء التابع initialize مع النسخة (instance) الجديدة. يجب أن يكون الكائن المُعاد نسخةً من الصنف class. البنية العامة allocate() → obj القيم المعادة يعاد كائن من الصنف class. أمثلة مثال على استخدام التابع allocate: klass = Class.new do def initialize(*args) @initialized = true end def initialized? @initialized || false end end klass.allocate.initialized? #=> false انظر أيضًا التابع new: يُنشئ صنفًا جديدًا مجهولًا غير مسمى (unnamed) من ...

التابع inherited في الصنف Class في روبي

يُستدعَى التابع inherited كرد نداء في كل مرة يُنشأ فيها صنف فرعي (subclass) من الصنف الحالي. البنية العامة inherited(subclass) أمثلة مثال على استخدام التابع inherited: class Foo def self.inherited(subclass) puts "New subclass: #{subclass}" end end class Bar < Foo end class Baz < Bar end انظر أيضًا التابع new: يُنشئ صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب (superclass) الممرر إليه (أو من الصنف Object إن لم يمرر إليه أي شيء). التابع allocate: يحجز مساحةً من الذاكرة لكائن جديد من الصنف class ...

التابع new في الصنف Class في روبي

يُنشئ التابع new صنفًا جديدًا مجهولًا غير مسمى (unnamed) من الصنف الأب ( superclass) المُمرَّر إليه (أو من الصنف Object إن لم يمرر إليه أي شيء). يمكن إعطاء صنف ما اسمًا عن طريق تعيين كائن الصنف (class object) وإعطائه قيمة ثابتة. إن أعطيت كتلة برمجية، فسيُمرَّر إليها كائن الصنف (class object)، وستقدَّر الكتلة في سياق ذلك الصنف كما هو الحال مع class_eval. عيِّن الصنف وأعطه قيمة ثابتة (يبدأ الاسم بأحرف كبيرة) إذا كنت تريد معاملته كصنف اعتيادي. البنية العامة new(super_class=Object) ...

Kotlin/Topics

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

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

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

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

أصناف المكتبة غير الكافية (Incomplete Library Classes)

توصيف المشكلة لا تلبِّي أصناف المكتبة (library classes) كافّة احتياجات البرنامج مع استمرار تطوُّره، ولا يمكن تعديلها لأنّها مُخصَّصةٌ للقراءة فقط (read-only). أسبابها عدم تزويد مُطوِّر المكتبة كافَّةَ الميّزات (features) التي تحتاجها في البرنامج أو امتناعه عن تعريفَ استخدامها (implement). وما الحل؟ لتعريف بعض التوابع (methods) في المكتبة عليك بتعريف التوابع الدخيلة (introduce foreign methods). أمّا لإجراء تغييراتٍ واسعةٍ في صنف المكتبة فعليك بتعريف الإضافات المحليّة (introduce local extensions). إليك المزيد سيكون حلُّ المشكلة كفيلًا بالتقليل من تكرار الشيفرات (duplications)، ...

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

يعدُّ الصنف Enum الصنف الأساس لكل الأصناف القابلة للعد (enum classes). إن أردت الاطلاع على معلومات أوسع حول هذه الأصناف، فاقرأ هذا المرجع. abstract class Enum<E : Enum<E>> : Comparable<E> (source) الدوال البانية (Constructors) <init> يعدُّ الصنف Enum الصنف الأساس لكل أصناف الترقيم (enum classes). الخاصيات name تمثل اسم الثابت المعرف في الكائن enum الذي استُدعي معها كما سُمّي أُثناء تعريف هذا الكائن. ordinal تمثل ترتيب (ordinal) الثابت المعرف في الكائن enum الذي استُدعي معها. الدوال clone ترمي هذه الدالة استثناءً لأنّ ثوابت الصنف Enum لا يمكن أن ...

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

يعدُّ الصنف Enum الصنف الأساس لكل الأصناف القابلة للعد (enum classes). إن أردت الاطلاع على معلومات أوسع حول هذه الأصناف، فاقرأ هذا المرجع. abstract class Enum<E : Enum<E>> : Comparable<E> (source) الدوال البانية (Constructors) <init> يعدُّ الصنف Enum الصنف الأساس لكل أصناف الترقيم (enum classes). الخاصيات name تمثل اسم الثابت المعرف في الكائن enum الذي استُدعي معها كما سُمّي أُثناء تعريف هذا الكائن. ordinal تمثل ترتيب (ordinal) الثابت المعرف في الكائن enum الذي استُدعي معها. الدوال clone ترمي هذه الدالة استثناءً لأنّ ثوابت الصنف Enum لا يمكن أن ...

المُنشِئ الحافظ للنوع (Type-Safe Builder) في لغة Kotlin

المُنشِئ الحافظ للنوع (Type-Safe Builder) يُتاح بناءُ المُنشِئ الستاتيكيّ الحافظ للنوع في لغة Kotlin باستخدام الدوال ذات التسمية المعبِّرة كمُنشِئ (builder) بالإضافة إلى قيم حرفية (literals) للدوال مع المستقبِل (receiver)، إذ يسمح المُنشِئ الحافظ للنوع ببناء لغات مُخصَّصة المجال (DSL) بالاعتماد على Kotlin بما يتناسب مع إنشاء بُنى البيانات الهرميّة المعقَّدة بطريقةٍ نصف تصريحية (semi-declarative)، وهذه بعض الأمثلة من حالات استخدامه: توليد ترميزٍ (markup) باستخدام شيفرة Kotlin مثل HTML أو XML تصميم أجزاء واجهات المستخدم (UI) برمجيًا مثل Anko ضبط ...

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

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

المقارنة بين لغتيّ البرمجة 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 الاستثناءات ...

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

تعيد الدالة filterIsInstance()‎ قائمة تحوي عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن. البنية العامة inline fun <reified R> Array<*>.filterIsInstance(): List<R> inline fun <reified R> Iterable<*>.filterIsInstance(): List<R> يمكن تمرير المعامل klass إلى الدالة filterIsInstance()‎: fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R> fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R> بيئة التشغيل المطلوبة: JVM وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع توثيق الدوال المباشرة)، واستخدام الكلمة المفتاحية reified يسمح بالوصول إلى نوعٍ مُمرَّر كمتحولٍ وسيطٍ (parameter، راجع توثيق reified ...

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

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

الحزم (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) يُستورَد عددٌ من الحزم ...

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

تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معها. استدعاء هذه الدالة يجب أن يكون: انعكاسيًا (Reflexive): لكل مرجع x لا يساوي null، يجب أن يعيد استدعاء x.equals(x)‎ القيمة true. تماثليًَا (Symmetric): لكل قيمتين مرجعيتين x و y لا تساويان null، سيعيد الاستدعاء x.equals(y)‎ القيمة true إذا، وفقط، إذا أعادت y.equals(x)‎ القيمة true. تواتريًا (Transitive):  لكل القيم المرجعية x و y و z التي لا تساوي null، سيعيد استدعاء x.equals(z)‎ القيمة true إن أعادت x.equals(y)‎ و ...

التسمية البديلة للأنواع (Type aliases) في لغة Kotlin

تدعم لغة Kotlin ميّزة التسمية البديلة للأنواع الموجودة للبيانات، وخاصّة إن كان اسم النوع طويلًا فيُستعاض عنه باسمٍ أقصرٍ ويُستخدَم الاسم الجديد في كتابة الشيفرات؛ فمن المفيد مثلًا تسمية الأنواع المُعمّمة (generics) بأسماء أقصرٍ، مثل الشيفرة الآتية المُستخدَمة لتسمية أنواع المجموعات (collections): typealias NodeSet = Set<Network.Node> typealias FileTable<K> = MutableMap<K, MutableList<File>> وبالإمكان أيضًا تسمية الأنواع المختلفة للدوال، مثل: typealias MyHandler = (Int, String, Any) -> Unit typealias Predicate<T> = (T) -> Boolean وكذلك الأمر بالنسبة للأصناف الداخليّة (inner classes) والمتداخلة (nested classes)، مثل: class ...

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

تضيف الدالة filterIsInstanceTo()‎ عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن إلى المجموعة المتغيرة destination المُمرّرة إليها. البنية العامة inline fun <reified R, C : MutableCollection<in R>> Array<*>.filterIsInstanceTo( destination: C ): C inline fun <reified R, C : MutableCollection<in R>> Iterable<*>.filterIsInstanceTo( destination: C ): C يمكن تمرير معامل klass إلى الدالة filterIsInstanceTo()‎: fun <C : MutableCollection<in R>, R> Array<*>.filterIsInstanceTo( destination: C, klass: Class<R> ): C fun ...

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

يمثل الصنف MatchGroup النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. data actual class MatchGroup الدوال البانية <init> تنشئ كائنًا من النوع MatchGroup الذي يمثل النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex.   الخاصيات range تمثل مجال الفهارس التي تحدّد مكان مجموعة النتائج التي تم الحصول عليها. value تمثل قيمة مجموعة النتائج التي تم الحصول عليها. الدوال الموروثة equals يبين إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معه. hashCode يعيد الشيفرة ...

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

يمثل الصنف MatchGroup النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. data actual class MatchGroup الدوال البانية <init> تنشئ كائنًا من النوع MatchGroup الذي يمثل النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex.   الخاصيات range تمثل مجال الفهارس التي تحدّد مكان مجموعة النتائج التي تم الحصول عليها. value تمثل قيمة مجموعة النتائج التي تم الحصول عليها. الدوال الموروثة equals يبين إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معه. hashCode يعيد الشيفرة ...

الخاصية Enum.name في Kotlin

تمثِّل الخاصية Enum.name اسم الثابت المعرف في الكائن enum الذي استُدعي معها كما سُمّي أُثناء تعريف هذا الكائن. البنية العامة val name: String أمثلة يوضح المثال التالي كيفية إنشاء نسخة من الصنف Enum باسم ColorEnum مكونًا من أربعة ثوابت هي: Red  و Blue  و Green  و Orange، واستعمال الخاصية Enum.name مع الثابتين RED و BLUE: fun main(args: Array<String>) { print(ColorEnum.Red.name) // Red print(ColorEnum.Blue.name) // Blue } enum class ColorEnum(val colorCode: Int) { Red(2), Blue(11212), ...

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

actual typealias StringBuilder = StringBuilder منصة التشغيل والإصدار المطلوبان: JVM ،Kotlin 1.1 actual class StringBuilder : Appendable, CharSequence منصة التشغيل المطلوبة: JS. الدوال البانية (Constructors) <init> تنشئ الدالة StringBuilder()‎ كائنًا من النوع StringBuilder. الخاصيات length تمثل هذه الخاصية حجم الكائن StringBuilder (عدد محارفه) الذي استدعي معها. الدوال append تضيف هذه الدالة محرفًا أو سلسلة نصية أو أيَّ كائن آخر إلى الكائن StringBuilder. get تجلب هذه الدالة محرفًا ذا فهرس محدَّدٍ من سلسلة محارف الكائن StringBuilder. reverse تعكس هذه الدالة ترتيب محارف الكائن StringBuilder. subSequence تقتطع هذه الدالة جزءًا محددًا من سلسلة محارف الكائن StringBuilder وتعيدها. toString تحول هذه ...

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

actual typealias StringBuilder = StringBuilder منصة التشغيل والإصدار المطلوبان: JVM ،Kotlin 1.1 actual class StringBuilder : Appendable, CharSequence منصة التشغيل المطلوبة: JS. الدوال البانية (Constructors) <init> تنشئ الدالة StringBuilder()‎ كائنًا من النوع StringBuilder. الخاصيات length تمثل هذه الخاصية حجم الكائن StringBuilder (عدد محارفه) الذي استدعي معها. الدوال append تضيف هذه الدالة محرفًا أو سلسلة نصية أو أيَّ كائن آخر إلى الكائن StringBuilder. get تجلب هذه الدالة محرفًا ذا فهرس محدَّدٍ من سلسلة محارف الكائن StringBuilder. reverse تعكس هذه الدالة ترتيب محارف الكائن StringBuilder. subSequence تقتطع هذه الدالة جزءًا محددًا من سلسلة محارف الكائن StringBuilder وتعيدها. toString تحول هذه ...

الخاصية Enum.ordinal في Kotlin

تمثل الخاصية Enum.ordinal ترتيب (ordinal) الثابت المعرف في الكائن enum الذي استُدعي معها؛ أي موقعه في تصريح الكائن enum، إذ يكون موقع الثابت الأول هو 0 وهكذا. البنية العامة val ordinal: Int أمثلة توضح الشيفرة التالية كيفية إنشاء صنف من النوع Enum باسم ColorEnum مكونًا من أربعة ثوابت هي: Red و Blue و Green و Orange، واستعمال الخاصية ordinal مع المركّبتين Red و Blue لمعرفة ترتيبهما: fun main(args: Array<String>) { print(ColorEnum.Red.ordinal) // 0 print(ColorEnum.Blue.ordinal) // 1 } enum class ColorEnum(val colorCode: Int) { ...

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

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

الصنف Boolean في Kotlin

يمثل الصنف Boolean قيمة منطقية وهي إما true أو false؛ في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع boolean الأساسي. class Boolean : Comparable<Boolean> الدوال and تجري الدالة and()‎ العملية and المنطقية بين قيمتين منطقيتين؛ خلافًا للمعامل &&، تتحقق هذه الدالة من كلا القيمتين المنطقيتين. compareTo توازن الدالة compareTo()‎ بين قيمة العنصر الذي استُدعيت معه والقيمة المُمرّرة إليه ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة ...

الصنف Boolean في Kotlin

يمثل الصنف Boolean قيمة منطقية وهي إما true أو false؛ في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع boolean الأساسي. class Boolean : Comparable<Boolean> الدوال and تجري الدالة and()‎ العملية and المنطقية بين قيمتين منطقيتين؛ خلافًا للمعامل &&، تتحقق هذه الدالة من كلا القيمتين المنطقيتين. compareTo توازن الدالة compareTo()‎ بين قيمة العنصر الذي استُدعيت معه والقيمة المُمرّرة إليه ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة ...

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

يوفر الصنف Destructured مركبات الإسناد بالتفكيك (destructuring assignment) لمجموعة من القيم. يسمح الإسناد بالتفكيك باستخراج القيم الموجودة في المصفوفات أو المجموعات أو خاصيات أحد الكائنات ...إلخ. إلى متغيرات مستقلة. تطابق الدالة component1 قيمة المجموعة الأولى، وتطابق الدالة component2 قيمة المجموعة الثانية، وهلم جرًا. إن كانت المجموعة في التعبير النمطي اختيارية ولم ترصد هذه المجموعة أي عملية تطابق تُذكر، فيمكن حينئذٍ أن تساوي قيمة المكون المقابل لهذه المجموعة سلسلةً نصيةً فارغةً. class Destructured الخاصيات match الدوال component1 component2 component3 component4 component5 component6 component7 ...

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

يوفر الصنف Destructured مركبات الإسناد بالتفكيك (destructuring assignment) لمجموعة من القيم. يسمح الإسناد بالتفكيك باستخراج القيم الموجودة في المصفوفات أو المجموعات أو خاصيات أحد الكائنات ...إلخ. إلى متغيرات مستقلة. تطابق الدالة component1 قيمة المجموعة الأولى، وتطابق الدالة component2 قيمة المجموعة الثانية، وهلم جرًا. إن كانت المجموعة في التعبير النمطي اختيارية ولم ترصد هذه المجموعة أي عملية تطابق تُذكر، فيمكن حينئذٍ أن تساوي قيمة المكون المقابل لهذه المجموعة سلسلةً نصيةً فارغةً. class Destructured الخاصيات match الدوال component1 component2 component3 component4 component5 component6 component7 ...

الدالة Enum.clone()‎ في Kotlin

ترمي الدالة clone()‎ استثناءً لأنّ ثوابت الصنف Enum لا يمكن أن تُنسَخ. تمنع هذه الدالة الأصناف ذات النوع Enum من أن ترِث من الصنف Cloneable. البنية العامة protected fun clone(): Any أمثلة يؤدي استعمال الدالة clone()‎ في المثال التالي إلى رمي استثناء: fun main(args: Array<String>) { val x = ColorEnum.Red val y = x.clone() // Error:(3, 14) Cannot access 'clone': it is protected in 'ColorEnum' } enum class ColorEnum(val colorCode: Int) { Red(2), ...

الدالة Enum.toString()‎ في Kotlin

تحول الدالة toString()‎ الكائن الذي استُدعي معها إلى سلسلة نصية (String). البنية العامة open fun toString(): String القيمة المعادة تعاد سلسلة نصية تضم جميع محتويات الكائن المعطى. أمثلة استعمال الدالة toString()‎ لتحويل أحد ثوابت نسخة أنشئت من الصنف Enum إلى سلسلة نصية: fun main(args: Array<String>) { val x = ColorEnum.Red print(x.toString()) // Red } enum class ColorEnum(val colorCode: Int) { Red(2), Blue(11212), Green(21212), Orange(212121) } انظر ...

الانتقال الفرعيّ Delegation في Kotlin

أثبت نموذج الانتقال الفرعيّ فعّاليته كبديلٍ جيّدٍ عن وراثة تعريف الاستخدام (implementation inheritance) إذ تدعم لغة Kotlin هذه الميّزة بشكلٍ طبيعيّ دون الحاجة إلى أيّ نوع قياسيّ من الشيفرات، وبالتالي فإنّ الصنف المُشتقّ (Derived) يرِث من الواجهة (Base) وينقل فرعيًا (delegate) كلَّ توابعه العامّة (public methods) إلى كائنٍ مُحدَّدٍ، كما في الشيفرة الآتية: interface Base { fun print() } class BaseImpl(val x: Int) : Base { override fun print() { print(x) } } class Derived(b: Base) : Base ...

الدالة Enum.hashCode()‎ في Kotlin

تعيد الدالة hashCode()‎ الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا: تعيد نفس العدد الصحيح دائمًا في كل مرة تستدعى فيها مع الكائن نفسه شريطة عدم تغيُّر أيّ معلومة تستخدمها الدالة equals()‎ عند موازنة هذا الكائن مع غيره. إذا تساوى كائنان بحسب الدالة equals()‎، فيجب أن تعيد الدالة hashCode()‎ شيفرة hash نفسها لكلٍّ منها. البنية العامة open fun hashCode(): Int وجود الكلمة المفتاحيّة open هنا يدل على السماح بإعادة تعريف (override) هذا التابع في الأصناف الفرعيّة ...

التهيئة الأولية للصنف ‎‎Any‎ في Kotlin

تعيد الدالة Any()‎ نسخةً من الصنف Any والذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. البنية العامة Any() القيم المعادة يعاد كائنٌ (object) من الصنف Any. أمثلة تنشِئ الدالة Any()‎ في الشيفرة الآتية كائنًا من الصنف Anyباسم obj ، ثم يُحدِّد صنف الكائن المُنشَأ وذلك بالاعتماد على خاصيّة الاسم البسيط للصنف (وهي class.simpleName) : fun main(args: Array<String>) {    val obj = Any()    println(" ${obj::class.simpleName}")  // Any } انظر ...

التهيئة الأولية للصنف ‎‎Any‎ في Kotlin

تعيد الدالة Any()‎ نسخةً من الصنف Any والذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. البنية العامة Any() القيم المعادة يعاد كائنٌ (object) من الصنف Any. أمثلة تنشِئ الدالة Any()‎ في الشيفرة الآتية كائنًا من الصنف Anyباسم obj ، ثم يُحدِّد صنف الكائن المُنشَأ وذلك بالاعتماد على خاصيّة الاسم البسيط للصنف (وهي class.simpleName) : fun main(args: Array<String>) {    val obj = Any()    println(" ${obj::class.simpleName}")  // Any } انظر ...

التهيئة الأولية للصنف Enum في Kotlin

يعدُّ الصنف Enum الصنف الأساس لكل أصناف الترقيم (enum classes). إن أردت الاطلاع على معلومات أوسع حول أصناف الترقيم، فاقرأ هذا المرجع. البنية العامة Enum(name: String, ordinal: Int) المعاملات name سلسلة نصية. ordinal عدد صحيح. أمثلة في الشيفرة الآتية، ننشئ نسخة من الصنف Enum باسم ColorEnum مكونًا من أربعة ثوابت: Red و Blue و Green و Orange ثم نطبع قيمة الثابت Red: fun main(args: Array<String>) { print(ColorEnum.Red) // Red } enum class ColorEnum(val colorCode: Int) { Red(2), Blue(11212), Green(21212), ...

التهيئة الأولية للصنف Enum في Kotlin

يعدُّ الصنف Enum الصنف الأساس لكل أصناف الترقيم (enum classes). إن أردت الاطلاع على معلومات أوسع حول أصناف الترقيم، فاقرأ هذا المرجع. البنية العامة Enum(name: String, ordinal: Int) المعاملات name سلسلة نصية. ordinal عدد صحيح. أمثلة في الشيفرة الآتية، ننشئ نسخة من الصنف Enum باسم ColorEnum مكونًا من أربعة ثوابت: Red و Blue و Green و Orange ثم نطبع قيمة الثابت Red: fun main(args: Array<String>) { print(ColorEnum.Red) // Red } enum class ColorEnum(val colorCode: Int) { Red(2), Blue(11212), Green(21212), ...

المشاريع متعددة المنصات (Multiplatform) في لغة Kotlin

ملاحظة: ما تزال ميّزة تعدّد منصّات العمل تجريبيّة في الإصدار Kotlin 1.2 وبالتالي فإن ما تحتويه هذه الصفحة قد يخضع للتغيير في إصدارات Kotlin القادمة. يسمح مشروع Kotlin متعدّد المنصّات بترجمة الشيفرة ذاتها إلى عدّة منصّاتٍ للعمل (platforms)، وتدعم Kotlin حاليًا البيئات: JVM و JavaScript بالإضافة إلى Native والتي لا زلت قيد التطوير وستُضاف رسميًا فيما بعد. بُنية المشروع متعدّد المنصّات (Multiplatform Project Structure) يتألف من ثلاثة أنواع من الوحدات (modules): الوحدة المشتركة (common module): تحتوي على الشيفرة العامّة التي ...

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

تعيد الدالة takeIf()‎ الكائن (object) الذي استُدعي معها إن كان ذلك الكائن يحقق شرطًا معيّنًا، أو تعيد القيمة null بخلاف ذلك. البنية العامة inline fun <T> T.takeIf(predicate: (T) -> Boolean): T? يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). المعاملات predicate دالةٌ تطبق على كل كائن من الكائنات المعطاة وتعيد قيمة منطقية مقابلة لكلٍّ منها. القيم المعادة الكائن الذي استُدعيت الدالة معها إن كان ذلك الكائن يحقق الشرط prediacte، ...

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

تعيد الدالة takeUnless()‎ الكائن (object) الذي استُدعي معها إن لم يكن هذا الكائن يحقق شرطًا معيّنًا، أو يعيد القيمة null بخلاف ذلك. البنية العامة inline fun <T> T.takeUnless(predicate: (T) -> Boolean): T? يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). المعاملات predicate دالةٌ تطبق على كل كائن من الكائنات المعطاة وتعيد قيمة منطقية مقابلة لكلٍّ منها. القيم المعادة تعيد الكائن الذي استُدعيت عبره الدالة إن لم يكن هذا الكائن ...

الخاصّيّات المُعمَّمة (Delegated Properties) في لغة Kotlin

 استخدام الخاصّيّات المُعمَّمة تستطيع في لغة Kotlin تعريف استخدام (implement) الخاصّيّات يدويًا مرارًا وتكرارًا بكل مرةٍ تحتاجها، ولكن من الأسهل تعريف استخدامها مرةً واحدةً وتخزين هذا التعريف في المكتبة (library) للاستفادة منه كلما دعت الحاجة، وهذا يشمل: الخاصّيّات الكسولة (Lazy property): تُحسب قيمتها مرةً واحدةً فقط وذلك عند الوصول إليها للمرّة الأولى. الخاصّيّات المُراقَبة (observable property): إذ يُستدعَى مسؤول الانتظار (listener) عند حدوث أي تغييرٍ في الخاصّيّة. تخزين الخاصّيّات في map بدلًا من حقلٍ منفصلٍ لكلِّ منها. وتشمل لغة Kotlin ...

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

يحوي الصنف DeprecationLevel مستويات تصف درجات الإهمال (deprecation levels). enum class DeprecationLevel القيم القابلة للعد (Enum Values) WARNING تشير القيمة WARNING إلى وجود تحذير تولد نتيجة استعمال عنصر مهمل (deprecated element). ERROR تشير القيمة ERROR إلى وجود خطأٍ تولد نتيجة استعمال عنصر مهمل (deprecated element). HIDDEN تشير القيمة HIDDEN إلى أن العنصر المهمل (deprecated elements) غير متاح للاستخدام ضمن الشيفرة. الخاصيات الموروثة (Inherited Properties) name تمثِّل الخاصية Enum.name اسم الثابت المعرف في الكائن enum الذي استُدعي معها كما سُمّي أُثناء تعريف هذا الكائن. ordinal تمثل الخاصية Enum.ordinal ترتيب (ordinal) الثابت المعرف في ...

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

تستدعي الدالة apply()‎ بُنية (block) الدالة المُحدَّدة وذلك بجعل قيمة this كمستقبِلٍ (receiver) لها وتُعيد قيمة this. البنية العامة inline fun <T> T.apply(block: T.() -> Unit): T يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). المعاملات block الكتلة البرمجية المراد استدعاؤها وتنفيذها. القيم المعادة يعاد الكائن المعطى بعد تعديله. أمثلة تستدعي الشيفرة الآتية الدالة apply()‎ عبر الكائن person المُنشَأ من الصنف Person الذي يحتوي على بيانات أوليّة لكلٍ من ...

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

يحوي الصنف DeprecationLevel مستويات تصف درجات الإهمال (deprecation levels). enum class DeprecationLevel القيم القابلة للعد (Enum Values) WARNING تشير القيمة WARNING إلى وجود تحذير تولد نتيجة استعمال عنصر مهمل (deprecated element). ERROR تشير القيمة ERROR إلى وجود خطأٍ تولد نتيجة استعمال عنصر مهمل (deprecated element). HIDDEN تشير القيمة HIDDEN إلى أن العنصر المهمل (deprecated elements) غير متاح للاستخدام ضمن الشيفرة. الخاصيات الموروثة (Inherited Properties) name تمثِّل الخاصية Enum.name اسم الثابت المعرف في الكائن enum الذي استُدعي معها كما سُمّي أُثناء تعريف هذا الكائن. ordinal تمثل الخاصية Enum.ordinal ترتيب (ordinal) الثابت المعرف في ...

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

تعرِض هذه الصفحة أنماط كتابة الشيفرات المُتعارَف عليها (conventions) من قِبل مبرمجي لغة Kotlin. تطبيق دليل التنسيق (Applying the Style Guide) لضبط المُنسِّق IntelliJ formatter بما يتوافق مع هذا الدليل يُنصَح بتثبيت إضافة Kotlin بالإصدار 1.2.20 (أو أي إصدارٍ أحدث) وضبط المّحرِّر بالانتقال إلى الإعدادات (Settings) ثمّ المُحرِّر (Editor) ثم نمط الشيفرة (Code Style) ثم Kotlin واختر "ضبط من..." Set from…"‎" في الزاوية اليمنى العُلويَّة ومن القائمة اختر الخيار Predefined style/Kotlin style guide. وللتأكد من تنسيق الشيفرة وفقًا لدليل Kotlin ...

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

تعرِض هذه الصفحة أنماط كتابة الشيفرات المُتعارَف عليها (conventions) من قِبل مبرمجي لغة Kotlin. تطبيق دليل التنسيق (Applying the Style Guide) لضبط المُنسِّق IntelliJ formatter بما يتوافق مع هذا الدليل يُنصَح بتثبيت إضافة Kotlin بالإصدار 1.2.20 (أو أي إصدارٍ أحدث) وضبط المّحرِّر بالانتقال إلى الإعدادات (Settings) ثمّ المُحرِّر (Editor) ثم نمط الشيفرة (Code Style) ثم Kotlin واختر "ضبط من..." Set from…"‎" في الزاوية اليمنى العُلويَّة ومن القائمة اختر الخيار Predefined style/Kotlin style guide. وللتأكد من تنسيق الشيفرة وفقًا لدليل Kotlin ...

مُحدِّدات الوصول (Visibility Modifiers) في لغة Kotlin

تُعيِّن مُحدِّدات الوصول قابليةَ الوصول إلى كلٍّ من الأصناف (classes) والكائنات (objects) والواجهات (interfaces) والدوال (functions) والخاصّيّات (properties) ودوال الوصول إليها من النوع setters (لأن مُحدِّد الوصول إلى getter مماثلٌ للوصول إلى الخاصّيّة نفسها)، وهناك أربعة أنواعٍ من المُحدِّدات وهي: private و protected و internal و public والنوع الافتراضيّ منها هو public (يُستخدم عند عدم وجود تصريحٍ عن إحداها)، وفيما يلي شرح لكيفيّة تطبيق المُحدِّدات على أنواعٍ مختلفةٍ من التصريحات (declarations). الحزم (Packages) يمكن تعريف كلٍّ من الدوال والخاصّيّات والأصناف ...

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

يمكن استخدام الدالة run()‎ بطريقتين: استدعاء بنية (block) الدالة المُحدَّدة وذلك بجعل قيمة this كمستقبِلٍ (receiver) له وإعادة قيمة ناتج البنية. استدعاء بنية (block) الدالة المُحدَّدة وإعادة ناتجها. البنية العام inline fun <T, R> T.run(block: T.() -> R): R inline fun <R> run(block: () -> R): R يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). المعاملات block الكتلة البرمجية المراد استدعاؤها وتنفيذها. القيم المعادة يعاد ناتج بنية (block) الدالة المُحدَّدة ...

تبديل رموز الأنواع بالأصناف (Replace Type Code with Class)

ما هو رمز النوع (type code)؟ يحدث رمز النوع عندما يوجد مجموعة من الأرقام أو السلاسل النصية التي تشكل قائمة بالقيم المسموح بها لبعض العناصر بدلًا من استخدام نوع بيانات منفصل. غالبا ما تُعطى هذه الأرقام والسلاسل المحددة أسماءً مفهومة عن طريق الثوابت، وهو السبب في استخدام هذه الرموز بشكل كبير. المشكلة يحتوي الصنف على حقل يحتوي على رموز الأنواع. ولا تُستخدم قيم هذا النوع في شروط المُشغِّل ولا تؤثر على سلوك البرنامج. الحل إنشاء صنف جديد واستخدام كائناته بدلًا ...

التعابير الاصطلاحية (Idioms) في لغة Kotlin

تعرِض هذه الصفحة عددًا من التعابير الاصطلاحيّة المستخدَمة بكثرةٍ في لغة Kotlin، ولأيّ اصطلاحٍ جديدٍ لم يُذكَر فيمكنك تعديل هذه الصفحة لإضافته. إنشاء كائنات نقل البيانات DTO:‏ Data Transfer Objects (الكائنات POJO/POCO) ليكن الصنف (class) الآتي باسم Customer: data class Customer(val name: String, val email: String) وله التوابع الوظيفيّة (functional methods) الآتية: توابع getter (وتوابع setter في حالة المتحولات من النوع var) لكافة الخاصّيّات (properties) equals()‎ hashCode()‎ toString()‎ copy()‎ component1()‎ و component2()‎ ...إلخ. وذلك لكافة الخاصّيّات (properties) في الصنف (راجع أصناف البيانات ...

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

الأصناف التي ترث من الواجهة Comparable تملك ترتيبًا إجماليًّا مُعرَّفًا بين نُسخِها. interface Comparable<in T> الدوال compareTo توازن الدالة compareTo()‎ بين الكائن الذي استُدعي معها والكائن المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. الدوال الموروثة equals تحدد الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معها. hashCode تعيد الدالة hashCode()‎ قيمة ...

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

الأصناف التي ترث من الواجهة Comparable تملك ترتيبًا إجماليًّا مُعرَّفًا بين نُسخِها. interface Comparable<in T> الدوال compareTo توازن الدالة compareTo()‎ بين الكائن الذي استُدعي معها والكائن المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. الدوال الموروثة equals تحدد الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معها. hashCode تعيد الدالة hashCode()‎ قيمة ...

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

تستدعي الدالة let()‎ بنية (block) الدالة المُحدَّدة وذلك بجعل قيمة this كوسيط (argument) لها وتعيد ناتج التنفيذ. عادة ما تُُستخدم let()‎لمنع الوصول إلى  المتغيرات في مجال الأسماء (namespace) إذ إنّ كل المتغيرات المعرَّفة داخلها لن تكون متاحةً خارج تلك البنية (block). البنية العامة inline fun <T, R> T.let(block: (T) -> R): R يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). المعاملات block الكتلة البرمجية المراد استدعاؤها وتنفيذها. القيم المعادة ...

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

يمثل الصنف Regex تعبيرًا نمطيا قابلًا للتعديل (immutable regular expression). إن أردت الاطلاع على المزيد من المعلومات المتعلقة بصياغة النمط (pattern)، انتقل إلى صفحة الصنف Pattern. actual class Regex : Serializable الدوال البانية <init> تنشئ الدالة Regex()‎ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. الخاصيات options تمثل هذه الخاصية مجموعةَ الخيارات التي استُخدمت في إنشاء التعبير النمطي الذي استُدعي معها. pattern تمثل هذه الخاصية النمط الأولي الذي استُخدم في إنشاء التعبير النمطي الذي استُدعي معها. الدوال containsMatchIn ...

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

يمثل الصنف Regex تعبيرًا نمطيا قابلًا للتعديل (immutable regular expression). إن أردت الاطلاع على المزيد من المعلومات المتعلقة بصياغة النمط (pattern)، انتقل إلى صفحة الصنف Pattern. actual class Regex : Serializable الدوال البانية <init> تنشئ الدالة Regex()‎ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. الخاصيات options تمثل هذه الخاصية مجموعةَ الخيارات التي استُخدمت في إنشاء التعبير النمطي الذي استُدعي معها. pattern تمثل هذه الخاصية النمط الأولي الذي استُخدم في إنشاء التعبير النمطي الذي استُدعي معها. الدوال containsMatchIn ...

الدوال (Functions) في لغة Kotlin

التصريح عن الدوال (Function Declarations) يُصرَّح عن الدوال في لغة Kotlin باستخدام الكلمة المفتاحيّة fun كما يلي: fun double(x: Int): Int { return 2 * x } استخدام الدوال (Function Usage) يكون استدعاء الدوال كما في أيّ لغة برمجةٍ أخرى بالشكل: val result = double(2) أمّا استدعاء الدوال من الأصناف فيعتمد على المعامل . كما في الشيفرة: Sample().foo() // إنشاء كائنٍ من الصنف واستدعاء الدالة عبره المعاملات (Parameters) تُعرَّف المعاملات بالصيغة المُعتمدَة في لغة Pascal وهي name: type ، ...

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

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

الأصناف المتداخلة (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 وذلك بهدف إتاحة الوصول لكافّة عناصر ...

تعبير this

تعبير this يُستخدم التعبير this لتحديد المستقبِل (receiver) الحاليّ، ويختلف ذلك بحسب الحالتين: تعبِّر الكلمة المفتاحيّة this في أيّ من عناصر الصنف (class member) عن الكائن (object) الحاليّ من هذا الصنف. وتعبِّر في الدالة الإضافيّة (extension functions) أو قيمة الدالة مع المستقبِل (function literal with receiver) عن معامل المستقبِل الذي سيُمرَّر على الطرف اليساريّ من النقطة .. وإذا لم يكن هناك أي تقييدٍ (qualification) مرتبطٍ مع الكلمة المفتاحيّة this فإنها ستعبِّر عن أقرب مجالٍ (scope) داخليّ محيطٍ بها (enclosing)، وللتعبير ...

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

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

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

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

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

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

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

يمثل الصنف Float عددًا عشريًّا (دقة أحادية للأعداد بعد الفاصلة [single-precision floating point]) بحجم 32 بت مطابقًا للمعيار IEEE 754. في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع float الأساسي. class Float : Number, Comparable<Float> الدوال compareTo توازن الدالة compareTo()‎ بين عدد عشري (float) وعدد آخر ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كان العدد الأول (العدد الذي استُدعي مع الدالة) أصغر من العدد الثاني الممرر إليها، أو قيمة موجبة إن كان العدد الأول أكبر من العدد الثاني. dec تنقص ...

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

يمثل الصنف Float عددًا عشريًّا (دقة أحادية للأعداد بعد الفاصلة [single-precision floating point]) بحجم 32 بت مطابقًا للمعيار IEEE 754. في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع float الأساسي. class Float : Number, Comparable<Float> الدوال compareTo توازن الدالة compareTo()‎ بين عدد عشري (float) وعدد آخر ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كان العدد الأول (العدد الذي استُدعي مع الدالة) أصغر من العدد الثاني الممرر إليها، أو قيمة موجبة إن كان العدد الأول أكبر من العدد الثاني. dec تنقص ...

الكلمات المفتاحية (Keywords) والمعاملات (Operators) في لغة Kotlin

 الكلمات المفتاحيّة الثابتة (Hard Keywords) تُعدُّ الكلمات الآتية كلماتٍ مفتاحيّةً في لغة Kotlin وليس ممكنًا استخدامها كمُعرِّفات (identifiers): as تُستخدَم في التحويلات ما بين الأنواع (typecasts) تُحدِّد تسميةً بديلةً (alias) عند عملية الاستيراد (import) as?‎ للتحويلات الحافظة للنوع (safe type casts) break لإنهاء تنفيذ الحلقات (loops) class للتصريح عن الأصناف continue  للاستمرار بالخطوة التالية لأقرب حلقة محيطة (enclosing) do للبدء بحلقة do/while (والتي يُختبَر الشرط فيها لاحقًا) else لتعريف فرعٍ (branch) من تعبير الشرط if والذي سيُنفَّذ عندما يكون الشرط بالقيمة false false ...

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

يمثل الصنف Double عددًا عشريًّا مضاعفًا (دقة مضاعفة للأعداد بعد الفاصلة [double-precision floating point]) بحجم 64 بت مطابقًا للمعيار IEEE 754. في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع double الأساسي. class Double : Number, Comparable<Double> الدوال compareTo توازن الدالة compareTo()‎ بين عدد عشري مضاعف (double) وعدد آخر ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كان العدد الأول (العدد الذي استُدعي مع الدالة) أصغر من العدد الثاني الممرر إليها، أو قيمة موجبة إن كان العدد الأول أكبر ...

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

يمثل الصنف Double عددًا عشريًّا مضاعفًا (دقة مضاعفة للأعداد بعد الفاصلة [double-precision floating point]) بحجم 64 بت مطابقًا للمعيار IEEE 754. في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع double الأساسي. class Double : Number, Comparable<Double> الدوال compareTo توازن الدالة compareTo()‎ بين عدد عشري مضاعف (double) وعدد آخر ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كان العدد الأول (العدد الذي استُدعي مع الدالة) أصغر من العدد الثاني الممرر إليها، أو قيمة موجبة إن كان العدد الأول أكبر ...

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

تعريف الحزم (Package) يُكتب توصيف الحزمة (package) في بداية الملف المصدريّ (source file) بالشكل الآتي: package my.demo import java.util.* // ... ولا يُشترط التوافق ما بين الحزمة (package) والمجلد الذي توجد فيه (directory)، إذ من الممكن أن تتوضع الملفات المصدريّة عشوائيًّا في نظام الملفات. المزيد عن الحزم (packages). تعريف الدوال (Function) إن كانت الدالة بمتحولين من نوع Int وتعيد قيمةً بنوع Int أيضًا، فسيصبح تعريفها بالشكل: fun sum(a: Int, b: Int): Int {   return a + b } أما الشيفرة الآتية فهي لتعريف دالةٍ باسم sum ...

التصريحات بالتفكيك (Destructuring Declarations) في لغة Kotlin

التصريح بالتفكيك قد تحتاج في بعض الأحيان لتفكيك الكائن (object) إلى عددٍ من المتغيِّرات، مثل: val (name, age) = person تٌسمَّى الصيغة السابقة بالتصريح بالتفكيك والذي يُنشِئ أكثر من متغيِّر بنفس الوقت (وهما المتغيِّرانname و age) حيث يُسمح باستخدامهما بشكلٍ مستقلٍ تمامًا كما في الشيفرة الآتية: println(name) println(age) إذ يُترجَم التصريح بالتفكيك كما يلي: val name = person.component1() val age = person.component2() حيث تُعدُّ الدالتان component1()‎ و component2()‎ مثالًا عن الاصطلاحات الأساسيّة المُستخدَمة في لغة Kotlin (راجع المُعامِلات مثل + و * وحلقات for و... ...

الاستثناءات (Exceptions) في لغة Kotlin

أصناف الاستثناءات (Exception Classes) تنحدر كلّ أصناف الاستثناءات في لغة Kotlin من الصنف Throwable حيث يوجد لكلِّ استثناءٍ رسالةٌ للإعلام به وتتبُّع تكديسي (stack trace) وسببٌ اختياريّ. ويُستخدَم التعبير throw لرمي كائن استثناءٍ بالشكل: throw MyException("Hi There!") أمّا تعبير try فهو مُستخدَمٌ لكشف الاستثناء كما في الشيفرة: try { // شيفرة } catch (e: SomeException) { // معالجات الاستثناء } finally { // قسم اختياريّ } ومن الممكن أن يحتوي الاستثناء أكثر من قسمٍ واحدٍ من catch أو ...

التحميل الزائد للمعاملات (Operator Overloading) في لغة Kotlin

تُتيح لغة Kotlin إجراءَ مجموعةٍ مُعرَّفة مسبقًا من العمليات على أنواع البيانات المختلفة وذلك باستخدام رموزٍ ثابتةٍ تعتمدها لغة Kotlin مثل الرمز + أو الرمز * وتختلف فيما بينها بالأولويّة (precedence)، حيث توجد دالةٌ (إما دالة من الصنف [member] أو دالة إضافيّة [extension]) باسمٍ ثابتٍ لكلّ معاملٍ مُعرَّف بحسب النوع (نوعٌ يساريٌّ للعمليات الثنائيّة [binary operations] ونوع وسائط [argument type] للعمليات الأحاديّة [unary operations])، ويجب تحديد الدوال التي تحتوي على تحميلٍ زائدٍ للمعاملات بالمُحدَّد operator، تناقش الصفحة الاصطلاحات (conventions) التي ...

الخاصّيّات (Properties) وحقول البيانات (Fields) في لغة Kotlin

التصريح عن الخاصّيّات (Declaring Properties) قد تحتوي الأصناف في لغة Kotlin على الخاصّيّات المعرَّفة إما كقيمٍ متغيّرةٍ عبر الكلمة المفتاحيّة var أو كقيمٍ ثابتةٍ للقراءة فقط (read-only) عبر الكلمة المفتاحيّة val، مثل: class Address { var name: String = ... var street: String = ... var city: String = ... var state: String? = ... var zip: String = ... } إذ يُمكن الوصول للخصائص عبر اسمها ...

الصنف ‎‎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()‎ المحرف السابق للمحرف الذي ...

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

يمثل الصنف FloatArray مصفوفةً من الأعداد العشرية. إن كانت منصة التشغيل المستهدفة هي JVM، فيمكن تمثيل نُسَخ هذا الصنف بالشكل []float. class FloatArray الدوال البانية <init> تنشئ الدالة FloatArray()‎ البانية مصفوفة جديدة من النوع FloatArray (أي مصفوفة من الأعداد العشرية) بحجم معين، وتحوي قيمًا محدَّدة أو القيم 0. الخاصيات size تمثِّل الخاصيّة FloatArray.size عدد العناصر الموجودة في المصفوفة ذات النوع FloatArray. الدوال get تجلب الدالة get()‎ عنصرًا ذي فهرس محدد من المصفوفة. iterator ينشئ الدالة iterator()‎ عنصرًا تكراريًّا (iterator) لتكرار بنيةٍ (block) برمجيةٍ على كافّة عناصر المصفوفة المستدعاة معه. set تضبط الدالة set()‎ قيمة عنصر ذي ...

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

 الدوال الموروثة clone يطلق التابع clone()‎ استثناءً (exception) لأنّ ثوابت enum  لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum من أن ترِث من الصنفCloneable. compareTo تقارن الدالةcompareTo()‎ بين قيمة العنصر الذي استُدعيت عبره والقيمة المُمرّرة، إذ تعيد القيمة 0 إن كانا متساويين، أو تعيد قيمة سلبية إن كانت قيمة العنصر الذي استُدعيت عبره أصغر من القيمة المُمرّرة، أو تعيد قيمة موجبة إن كانت قيمة العنصر الذي استُدعيت عبره أكبر من القيمة المُمرّرة . equals تبين الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي ...

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

الخاصيات الموروثة (Inherited Properties) name تعيد الخاصية name اسم الثابت من الكائن enum الذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن. ordinal تعيد الخاصية ordinal ترتيب الثابت من الكائن enum الذي استُدعيت عبره  enumeration constant‎)‎‎)، أي ترتيبها في تصريح الكائن enum،بحيث تأخذ المُركّبة الأولى العدد 0. الدوال الموروثة clone يطلق التابع clone()‎ استثناءً (exception) لأنّ ثوابت enum  لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum من أن ترِث من الصنفCloneable. compareTo تقارن الدالةcompareTo()‎ بين قيمة العنصر الذي استُدعيت عبره والقيمة المُمرّرة، إذ تعيد القيمة 0 إن كانا متساويين، أو تعيد قيمة سلبية ...

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

الدوال الموروثة equals تبين الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت عبره. hashCode يعيد التابع hashCode()‎ قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي عبره. toString يعيد التابع toString()‎ تمثيلًا نصيًا للكائن الذي يُستدعى عبره.

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

يمثل الصنف CharArray مصفوفةً من الأعداد العشرية المضاعفة. إن كانت منصة التشغيل المستهدفة هي JVM، فيمكن تمثيل نُسَخ هذا الصنف بالشكل []char. class DoubleArray الدوال البانية (Constructors) <init> تنشئ الدالة DoubleArray()‎ البانية مصفوفة جديدة من النوع DoubleArray (أي مصفوفة من الأعداد العشرية المضاعفة [double]) بحجم معين، وتحوي قيمًا محدَّدة أو القيم 0. الخاصيات size تمثِّل الخاصيّة DoubleArray.size عدد العناصر الموجودة في المصفوفة ذات النوع DoubleArray. الدوال get تجلب الدالة get()‎ عنصرًا ذي فهرس محدد من المصفوفة. iterator تنشئ الدالة iterator()‎ عنصرًا تكراريًّا (iterator) لتكرار بنيةٍ (block) برمجيةٍ على كافّة عناصر المصفوفة المستدعاة معه. set تضبط الدالة set()‎ قيمة عنصر ذي ...

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

يمثل الصنف Array مصفوفة (مصفوفة Java تحديدًا عند استهداف المنصة JVM). يمكن إنشاء نسخ من هذا الصنف باستعمال الدوال ()‎arrayOf و ()‎arrayOfNulls و ()‎emptyArray الخاصة بالمكتبة القياسية. للمزيد من المعلومات حول المصفوفات، ارجع إلى قسم "المصفوفات" في توثيق الأنواع الأساسية. class Array<T> الدوال البانية <int> تنشِئ الدالة Array()‎ البانية مصفوفةً بحجم size مُحدَّدٍ، حيث يُحسَب كلُّ عنصرٍ فيها عبر استدعاء الدالة init المُحدَّدة، والتي تُعيد عنصرًا في المصفوفة بحسب الفهرس (index) المُعطى. الدوال والخاصيات size تمثِّل الخاصيّة size عدد العناصر الموجودة في المصفوفة (array). iterator تعيد هذه الدالة ...

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

يمثل الصنف ByteArray مصفوفةً من البايتات. إن كانت منصة التشغيل المستهدفة هي JVM، فيمكن تمثيل نُسَخ هذا الصنف بالشكل []byte. class ByteArray الدوال البانية <int> تنشئ الدالة ByteArray()‎ البانية مصفوفة جديدة من النوع ByteArray (أي حجم كل عنصر منها بايتًا واحدًا) بحجم معين، إذ تحوي قيمًا محدَّدة أو القيم 0. الخاصيات size تمثِّل الخاصيّة size عدد العناصر الموجودة في المصفوفة ذات النوع ByteArray. الدوال get يجلب التابع get()‎ عنصرًا ذي فهرس محدد من المصفوفة. iterator ينشئ التابع iterator()‎ عنصرًا تكراريًّا (iterator) لتكرار بنيةٍ (block) برمجيةٍ على كافّة عناصر المصفوفة المستدعاة معه. set يضبط التابع set()‎ قيمة ...

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

الدوال الموروثة equals تبين الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت عبره. hashCode يعيد التابع hashCode()‎ قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي عبره. toString يعيد التابع toString()‎ تمثيلًا نصيًا للكائن الذي يُستدعى عبره.

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

تمثل الواجهة CharSequence سلسلةً من المحارف قابلةً للقراءة. interface CharSequence الخاصيات length تمثل الخاصية CharSequence.length عدد عناصر سلسلة المحارف (CharSequence) المستدعاة معها. الدوال get تجلب الدالة get()‎‎ المحرف ذا الفهرس الممرَّر إليها من سلسلة المحارف المستدعاة معها. subSequence تجلب الدالة subSequence()‎‎ جزءًا محددًا يقع في سلسلة المحارف التي استٌدعيت معها. الدوال الموروثة (Inherited Functions) equals تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معه.  hashCode تعيد الدالة hashCode()‎ الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. toString تحول الدالة toString()‎ الكائن الذي يُستدعى معه إلى سلسلة نصية (String). الخاصيات الإضافية (Extension Properties) ...

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

تمثل الواجهة CharSequence سلسلةً من المحارف قابلةً للقراءة. interface CharSequence الخاصيات length تمثل الخاصية CharSequence.length عدد عناصر سلسلة المحارف (CharSequence) المستدعاة معها. الدوال get تجلب الدالة get()‎‎ المحرف ذا الفهرس الممرَّر إليها من سلسلة المحارف المستدعاة معها. subSequence تجلب الدالة subSequence()‎‎ جزءًا محددًا يقع في سلسلة المحارف التي استٌدعيت معها. الدوال الموروثة (Inherited Functions) equals تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معه.  hashCode تعيد الدالة hashCode()‎ الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. toString تحول الدالة toString()‎ الكائن الذي يُستدعى معه إلى سلسلة نصية (String). الخاصيات الإضافية (Extension Properties) ...

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