نتائج البحث

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

الأنواع المُعمَّمة (Generics) في لغة Kotlin

معاملات الأنواع (Type Parameters) قد تحتوي الأصناف (classes) -كما هو الحال في لغة Java- على معاملات للأنواع (type parameters) مثل: class Box<T>(t: T) { var value = t } ولإنشاء كائنٍ (instance) من هذا الصنف يجب تحديد النوع كما في الشيفرة الآتية: val box: Box<Int> = Box<Int>(1) أمّا إن كان بالإمكان معرفة (infer) المعاملات إمّا من خلال معاملات الباني (constructor arguments) أو بأيّ وسيلةٍ أخرى فيمكن حينئذٍ حذف نوع المعاملات، مثل: val box = Box(1) // القيمة 1 لها ...

المولدات Generators في بايثون

المولّدات هي أداة بسيطة وقوية لإنشاء المكرِّرات. تأخذ المولِّدات صيغة الدوال العادية ولكنّها تستخدم عبارة yield عند إعادة البيانات. في كلّ مرة تستدعى فيها الدالة next()‎ على المولّدات تعود الأخيرة إلى المكان الذي تركته (تتذكر المولّدات جميع القيم والعبارات التي نفّذت أخيرًا). يوضح المثال التالي كيفية إنشاء المولّدات وآلية عملها: def reverse(data):     for index in range(len(data)-1, -1, -1):         yield data[index] >>> >>> for char in reverse('golf'): ...     print(char) ... f l o g يمكن إنجاز كل ما تقوم به المولّدات باستخدام مكرِّرات صنفية (class-based ...

التعامل مع التعميم (Dealing with Generalization)

يملك التجريد (Abstraction) تقنيات إعادة التصميم الخاصة به والمرتبطة بشكل أساسي بوظيفة النقل على طول التسلسل الهرمي لوراثة الصنف (class inheritance hierarchy)، وبإنشاء أصناف وواجهات جديدة، وبتبديل التفويض مكان الوراثة أو العكس. تقنيات هذا القسم هي: استخراج الأصناف الفرعية (Extract Subclass) المشكلة: يكون للصنف ميزات تستعمل فقط في حالات معينة. الحل: إنشاء صنف فرعي واستخدامه في هذه الحالات. استخراج الأصناف الفائقة (Extract Superclass) المشكلة: وجود صنفين لهما حقول وتوابع مشتركة. الحل: إنشاء صنف أب مشترك لهما ونقل جميع الحقول والتوابع ...

CSS/Topics/Generated Content

الخاصية الوصف content تُستخدَم مع العنصرين الزائفين ‎::before و‎::after لتوليد محتوى في العنصر. quotes تُشير إلى الطريقة التي يجب أن يعرض فيها المتصفح علامات الاقتباس.

التخطيط الشمولي المفرط (Speculative Generality)

توصيف المشكلة وجود أصنافٍ (classes) أو توابعَ (methods) أو حقولٍ (fields) أو معاملاتٍ (parameters) غير مُستخدَمة في الشيفرة. أسبابها إنشاء عناصرَ إضافيّةٍ "قد" يحتاجها المبرمج مستقبلًا لميّزات يُخطِّط لها (وقد لا تُنفَّذ أصلًا)، وغير مستخدمةٍ بالوقت الحاليّ، مما يجعل الشيفرة أكثر صعوبةً بالفهم والدعم. وما الحل؟ هدم الهيكليّة الهرميّة (collapse hierarchy) لإزالة الأصناف المُجرَّدة (abstract classes) غير المُستخدَمة. دمج الأصناف (inline classes) للحدُّ من عمليات تفويض المهامّ (delegation) غير الضروريّة لصنفٍ آخر. دمج التوابع (inline methods) للتخلُّص من التوابع عديمة ...

الخاصية CharSequence.lastIndex في Kotlin

تمثل الخاصيّة CharSequence.lastIndex فهرس المحرف الأخير في سلسلة المحارف التي استُدعيت معها. البنية العامة val CharSequence.lastIndex: Int القيم المعادة يعاد عدد صحيح يمثل فهرس العنصر الأخير الموجود ضمن سلسلة المحارف المعطاة، أو تعاد القيمة 1- إن كانت سلسلة المحارف تلك فارغةً. أمثلة استعمال الخاصية CharSequence.lastIndex لمعرفة فهرس العنصر الأخير في سلسلة من المحارف: fun main(args: Array<String>) { val x = "hsoub" print(x.lastIndex) // 4 } انظر أيضًا الدالة ()get: تجلب العنصر ذي ...

الخاصية Char.directionality في Kotlin

تمثل الخاصية Char.directionality خاصية الاتجاه في الترميز الموحد (Unicode directionality property) للمحرف الذي استُدعي معها. البنية العامة val Char.directionality: CharDirectionality منصة التشغيل المطلوبة: JVM. القيم المعادة يعاد كائن من النوع CharDirectionality يمثل خاصية الاتجاه في الترميز الموحد للمحرف المعطى. مثال استعمال الخاصية Char.directionality لمعرفة اتجاه عدة محارف: fun main(args: Array<String>) { val x = 'a' val y = 'أ' val z = '4' println(x.directionality) // LEFT_TO_RIGHT ...

الخاصية Char.category في Kotlin

تمثل الخاصية category فئة المحرف العامة (character's general category). البنية العامة val Char.category: CharCategory منصة التشغيل المطلوبة: JVM. القيم المعادة يعاد كائن من النوع CharCategory يحتوي على الفئة العامة للمحرف المعطى. مثال استعمال الخاصية Char.category لمعرفة الفئة العامة لعدة محارف: fun main(args: Array<String>) { val x = 'a' val y = 'A' val z = '4' println(x.category) // LOWERCASE_LETTER println(y.category) // UPPERCASE_LETTER println(z.category) ...

التحقق من الأنواع (Type Check) والتحويل بينها (Casting) في لغة Kotlin

المعاملين is و ‎!is تدعم لغة Kotlin ميّزة التحقُّق من توافق الكائن مع أحد الأنواع أثناء التنفيذ، وذلك بالاعتماد على المُعامِل is أو صيغته المنفيّة ‎!is كما في الشيفرة: if (obj is String) { print(obj.length) } if (obj !is String) { // !(obj is String) مكافئ للصيغة print("Not a String") } else { print(obj.length) } التحويلات الذكية (Smart Casts) لا حاجة في كثيرٍ من الأحيان لجعل التحويل صريحًا (explicit) في لغة Kotlin لأنّ المترجم (compiler) يتتبَّع ...

التعابير الاصطلاحية (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) في الصنف (راجع أصناف البيانات ...

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