نتائج البحث

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

JavaScript/Topics/Expressions and Operators

هذا القسم فيه ما يتعلق بالتعابير والمعاملات في JavaScript. التعابير الأساسية وهي تتضمن التعابير والكلمات المحجوزة العامة في JavaScript. this تُحدَّد قيمة الكلمة المحجوزة this وفق طريقة استدعاء الدالة. function (تعبير تعريف الدوال) الكلمة المحجوزة function تُستخدَم لتعريف دالة داخل تعبير (expression). انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال. class (تعبير تعريف الأصناف) الكلمة المحجوزة class تشير إلى تعبير تعريف للأصناف. function*‎ (تعبير تعريف الدوال المولدة) الكلمة المحجوزة function*‎ تُستخدَم لتعريف دالة مولِّدة داخل تعبير. انظر إلى صفحة «الدوال في JavaScript» ...

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

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

توحيد التعبير الشرطي (Consolidate Conditional Expression)

المشكلة وجود عدة شروط تؤدي إلى نفس النتيجة أو الإجراء. الحل توحيد جميع هذه الشروط في تعبير وحيد. مثال قبل إعادة التصميم وجود عدة شروط يتم التحقق منها في الشيفرة: في لغة Java: double disabilityAmount() { if (seniority < 2) { return 0; } if (monthsDisabled > 12) { return 0; } if (isPartTime) { return 0; } // حساب مقدار العجز //... } في ...

تبسيط التعابير الشرطية (Simplifying Conditional Expressions)

تزداد البنية المنطقية للشروط تعقيدًا مع مرور الوقت، لذا هنالك الكثير من التقنيات لمواجهة هذا التعقيد وتبسيطه وهي: تجزئة الشَرطيات (Decompose Conditional) المشكلة: يوجد شَرط مُعقد (if-then/else أو switch). الحل: فصل الأجزاء المعقدة من الشَرط إلى توابع منفصلة: الشرط، و then و else. توحيد التعبير الشرطي (Consolidate Conditional Expression) المشكلة: وجود عدة شروط تؤدي إلى نفس النتيجة أو الإجراء. الحل: توحيد جميع هذه الشروط في تعبير وحيد. توحيد الأجزاء الشرطية المكررة (Consolidate Duplicate Conditional Fragments) المشكلة: شيفرة برمجية متطابقة موجودة في جميع فروع الشَرطيات. الحل: ...

الدالة Regex_1 في Kotlin

أصبحت الدالة Regex_1 مهملة، إذ كانت متوافرة من أجل التوافقية الثنائية (binary compatibility). تنشئ هذه الدالة تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة مع استعمال الخيارات الافتراضية. البنية العامة fun Regex_1(pattern: String): Regex (source) المعاملات pattern سلسلة نصية تمثل النمط الذي سينشأ منه تعبير نمطي. القيم المعادة يعاد كائن من النوع Regex يحتوي على التعبير النمطي pattern بعد ضبطه وفقًا للقيمة الافتراضية للخيارات. انظر أيضًا الدالة Regex()‎: تنشئ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. الدالة findAll()‎: تبحث عن جميع المحارف المتطابقة مع التعبير النمطي الذي استُدعي معها في سلسلة المحارف الممرَّرة ...

الدالة Regex_0 في Kotlin

أصبحت الدالة Regex_0 مهملة، إذ كانت متوافرة من أجل التوافقية الثنائية (binary compatibility). تنشئ هذه الدالة تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية والخيارات المُمرّرة إليها. البنية العامة fun Regex_0(pattern: String, option: RegexOption): Regex منصة التشغيل المطلوبة: JS. المعاملات pattern سلسلة نصية تمثل النمط الذي سينشأ منه تعبير نمطي. option كائن من النوع RegexOption يحوي خيارًا واحدًا من خيارات التعابير النمطية. القيم المعادة يعاد كائن من النوع Regex يحتوي على التعبير النمطي pattern بعد ضبطه وفقًا للخيار option. انظر أيضًا الدالة Regex()‎: تنشئ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. الدالة containsMatchIn()‎: تتحقق ...

الصنف ‎‎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 ...

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

الدالة reflect()‎ هي واجهة برمجية (API) تجريبية؛ إن استدعيت مع تعبير تعريف دالة (function expression) أو تعبير lambda، فستعيد نسخةً من KFunction تزودنا بالإمكانيات الداخلية (introspection capabilities) لتعبير تعريف الدالة أو تعبير lambda ذاك المعطى وعن معاملاته. ليست جميع الميزات مدعومةً في الوقت الحالي، تحديدًا KCallable.call و KCallable.callBy. البنية العامة fun <R> Function<R>.reflect(): KFunction<R>? منصة التشغيل المطلوبة: JVM. انظر أيضًا الواجهة Function. الدوال من المرتبة الأعلى (Higher-Order Functions) و تعابير Lambdas. مصادر صفحة الدالة ()reflect في التوثيق الرسميّ للمكتبة القياسيّة في لغة ...

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

تمثل الواجهة Function قيمةً لنوع وظيفي (functional type) -مثل تعبير lambda-، أو دالة مجهولة، أو مرجع دالة. interface Function<out R> إذ يعيد المعامل R نوع الدالة. الدوال الموروثة equals تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معه. وأيُّ تعريف لاستخدام هذه الدالة يجب أن يكون: hashCode تعيد الدالة hashCode()‎ الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا: toString تحول الدالة toString()‎ الكائن الذي يُستدعى معه إلى سلسلة نصية (String). الدوال الإضافية (Extension Functions) reflect ...

الخاصية Regex.pattern في Kotlin

تمثل الخاصية Regex.pattern النمط الذي استعمل في إنشاء التعبير النمطي الذي استُدعي معها. البنية العامة actual val pattern: String القيمة المعادة تعاد سلسلة نصية تمثل النمط الذي استعمل في إنشاء التعبير النمطي المعطى. أمثلة استعمال الخاصية Regex.pattern مع تعبير نمطي لمعرفة النمط الأولي الذي استعمل في إنشائه -باستعمال الدالة Regex()‎-: fun main(args: Array<String>) { val reg = Regex("""-?\d+(\.\d+)?""") print(reg.pattern ) // -?\d+(\.\d+)? } انظر أيضًا الخاصية Regex.options: تمثل مجموعةَ الخيارات التي استُخدمت في إنشاء التعبير ...

الخاصية Regex.options في Kotlin

تمثل الخاصية Regex.options مجموعةَ الخيارات التي استُخدمت في إنشاء التعبير النمطي الذي استُدعي معها. البنية العامة actual val options: Set<RegexOption> القيمة المعادة تعاد مجموعةٌ تحوي جميع الخيارات التي استعملت في ضبط التعبير النمطي المعطى أثناء إنشائه. أمثلة استعمال الخاصية options مع تعبير نمطي لمعرفة الخيارات التي استعملت في ضبطه عند إنشائه -باستعمال الدالة Regex()‎-: fun main(args: Array<String>) { val reg = Regex("""-?\d+(\.\d+)?""", RegexOption.UNIX_LINES) print(reg.options) // [UNIX_LINES] } انظر أيضًا الخاصية Regex.pattern: تمثل النمط الأولي الذي ...

الدالة Regex.matchEntire()‎ في Kotlin

تحاول الدالة matchEntire()‎ مطابقة جميع محارف السلسلة الممررة إليها مع التعبير النمطي الذي استدعي معها. البنية العامة actual fun matchEntire(input: CharSequence): MatchResult? المعاملات input سلسلة المحارف التي يراد تطابق جميع محارفها مع التعبير النمطي المعطى. القيمة المعادة تعاد نسخةٌ من الصنف MatchResult تحتوي على جميع محارف المعامل input إن تطابقت جميع تلك المحارف مع التعبير النمطي المعطى، أو تعاد القيمة null خلاف ذلك. أمثلة استعمال الدالة matchEntire()‎ لمعرفة سلسلة المحارف المطابقة للتعبير النمطي ‎-?\d+(\.\d+)?‎ بشكل كامل: fun main(args: Array<String>) { ...

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

تضيف الدالة toMutableList()‎ كل محارف سلسلة المحارف التي استٌدعيت معها إلى قائمة متغيرة، إذ يوضع كل محرف في عنصر. البنية العامة fun CharSequence.toMutableList(): MutableList<Char> القيم المعادة تعاد قائمة متغيرة جديدة تحوي جميع محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة toMutableList()‎: fun main(args: Array<String>) { println("Hello, world!".toMutableList()) // [H, e, l, l, o, ,, , w, o, r, l, d, !] println("Hsoub".toMutableList()) // [H, s, o, u, b] println("114".toMutableList()) // [1, ...

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

الدالة Regex.matches()‎ في Kotlin

تتحقق الدالة matches()‎ من مطابقة جميع محارف السلسلة الممررة إليها مع التعبير النمطي الذي استدعي معها. البنية العامة infix actual fun matches(input: CharSequence): Boolean وجود الكلمة المفتاحية infix يدل على إمكانية استدعاء الدالة بنمط التدوين الداخلي (Infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً. المعاملات input سلسلة من المحارف التي يراد أن يُتحقَق من مطابقتها كلِّيًا لتعبير نمطي معين. القيمة المعادة تعاد القيمة true إن تطابقت جميع محارف السلسلة input مع التعبير النمطي المعطى. أمثلة استعمال الدالة matches()‎ للتحقق من مطابقة ...

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

تضيف الدالة toSortedSet()‎ كل محارف السلسلة  التي استٌدعيت معها إلى مجموعة من النوع SortedSet، إذ يوضع كل محرف في عنصر. البنية العامة fun CharSequence.toSortedSet(): SortedSet<Char> منصة التشغيل المطلوبة: JVM. القيم المعادة تعاد مجموعة جديدة من النوع SortedSet تحوي جميع محتويات أمثلة مثالٌ على استعمال الدالة toSortedSet()‎: fun main(args: Array<String>) { println("Hello, world!".toSortedSet()) // [ , !, ,, H, d, e, l, o, r, w] println("Hsoub".toSortedSet()) // [H, b, o, s, u] println("114".toSortedSet()) ...

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

تضيف الدالة toSet()‎ كل محارف سلسلة الحروف  التي استٌدعيت معها إلى مجموعة من النوع Set، إذ يوضع كل محرف في عنصر. تحافظ المجموعة المُعادة على ترتيب التكرار (element iteration order) في سلسلة المحارف الأصلية. البنية العامة fun CharSequence.toSet(): Set<Char> القيم المعادة تعاد مجموعة من النوع Set تحوي كل محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة toSet()‎: fun main(args: Array<String>) { println("Hello, world!".toSet()) // [H, e, l, o, ,, , w, r, d, !] ...

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

تعيد الدالة toHashSet()‎ كائنًا من النوع HashSet يحوي كل محارف السلسلة التي استٌدعيت معها. البنية العامة fun CharSequence.toHashSet(): HashSet<Char> القيم المعادة يعاد كائن من النوع HashSet يحوي كل محارف السلسلة المعطاة. أمثلة مثالٌ على استعمال الدالة toHashSet()‎: fun main(args: Array<String>) { println("hsoub".toHashSet()) // [h, b, s, u, o] println("32.87".toHashSet()) // [8, 2, 3, ., 7] println("wiki".toHashSet()) // [i, k, w] } ...

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

تحول الدالة toRegex()‎ السلسلة النصية التي استٌدعيت معها إلى تعبير نمطي (regular expression). البنية العامة inline fun String.toRegex(): Regex inline fun String.toRegex(option: RegexOption): Regex inline fun String.toRegex(options: Set<RegexOption>): Regex يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات option كائن من النوع RegexOption يمثل الخيارات التي ستستعمل في ضبط التعبير النمطي عند التحويل. options مجموعة تحوي كائنات من النوع RegexOption يمثل الخيارات التي ستستعمل في ضبط التعبير النمطي عند التحويل. القيم المعادة يعاد تعبير نمطي ...

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

تضيف الدالة toCollection()‎ كل محارف السلسلة التي استٌدعيت معها إلى المجموعة المتغيرة المُمرّرة إليها. البنية العامة fun <C : MutableCollection<in Char>> CharSequence.toCollection( destination: C ): C المعاملات مجموعة متغيرة يراد أن يضاف فيها محتوى سلسلة المحارف المعطاة. القيم المعادة يعاد المعامل destination بعد إضافة محتوى سلسلة المحارف المعطاة إليه. أمثلة مثالٌ على استعمال الدالة toCollection()‎: fun main(args: Array<String>) { val list: MutableList<Char> = mutableListOf() val str = "wikiHsoub" str.toCollection(list) ...

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

ترمز الدالة toByteArray()‎ جميع محارف السلسلة النصية التي استٌدعيت معها وفقًا لترميز محدد ثم تضع الناتج في مصفوفة من النوع ByteArray. البنية العامة inline fun String.toByteArray( charset: Charset = Charsets.UTF_8 ): ByteArray بيئة التشغيل المطلوبة: JVM. يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات charset اسم الترميز المراد تحويل محارف السلسلة النصية المعطاة إليه. القيمة الافتراضية هي: Charsets.UTF_8. القيم المعادة تعاد مصفوفة من النوع ByteArray تحوي ناتج ترميز جميع ...

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

تحول الدالة toPattern()‎ السلسلة النصية التي استٌدعيت معها إلى نمط. البنية العامة inline fun String.toPattern(flags: Int = 0): Pattern منصة التشغيل المطلوبة: JVM. يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات flags عدد صحيح يستعمل لتقسيم أو مطابقة السلسلة النصية المعطاة. القيم المعادة يعاد كائن من النوع Pattern. أمثلة مثالٌ على استعمال الدالة toPattern()‎: fun main(args: Array<String>) { println("""-?\d+(\.\d+)?""".toPattern()) // -?\d+(\.\d+)? // يطابق هذا التعبير النمطي القيم ...

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

تحوّل الدالة toLowerCase()‎ المحرف أو جميع محارف السلسلة النصية التي استٌدعيت معها إلى محارف صغيرة (lowercase). البنية العامة inline actual fun Char.toLowerCase(): Char inline actual fun String.toLowerCase(): String inline fun String.toLowerCase(locale: Locale): String المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). المعاملات locale المحلية المراد ضبطها إلى منطقة جغرافية محددة وأخذها بالحسبان أثناء عملية التحويل. القيم المعادة يعاد المحرف المعطى بعد تحويله إلى محرف صغير، أو تعاد السلسلة النصية المعطاة ...

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

تحوّل الدالة toLowerCase()‎ المحرف أو جميع محارف السلسلة النصية التي استٌدعيت معها إلى محارف صغيرة (lowercase). البنية العامة inline actual fun Char.toLowerCase(): Char inline actual fun String.toLowerCase(): String inline fun String.toLowerCase(locale: Locale): String المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). المعاملات locale المحلية المراد ضبطها إلى منطقة جغرافية محددة وأخذها بالحسبان أثناء عملية التحويل. القيم المعادة يعاد المحرف المعطى بعد تحويله إلى محرف صغير، أو تعاد السلسلة النصية المعطاة ...

بنية البرمجة في لغة 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 ...

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

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

أوامر الرجوع (Returns) والقفز (Jumps)

تعابير القفز تمتاز لغة Kotlin بوجود ثلاثة تعابير (expressions) لنقل سياق البرنامج وهي: return: للرجوع من أقرب دالةٍ محيطةٍ (enclosing) أو دالةٍ مجهولةٍ (anonymous function). break : تنهي أقرب حلقةٍ محيطة. continue : تستمر بالخطوة التالية لأقرب حلقةٍ محيطة. إذ يُسمَح باستخدام أيّ من التعابير السابقة كجزءٍ من تعبيرٍ أكبر، مثل: val s = person.name ?: return ونوع هذه التعابير هو Nothing type. تسمية الأوامر Break و Continue يٌتاح في لغة Kotlin تحديد تسميةٍ (label) لأيّ تعبير، إذ تتألف هذه التسمية من مُحدِّدٍ ...

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

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

التحكم بالتدفق (Control Flow) في Kotlin

كما في أيّة لغة برمجة فإن لغة Kotlin تحتوي على تعابير للتحكم بالتدفق، وهي: تعبير if، وتعبير when، وحلقة for، وحلقة while. وتدعم كذلك الكلمتين المفتاحيّتَين continue و break المستخدَمتَين في الحلقات (راجع أوامر الرجوع والقفز returns and jump). تعبير if يُعدُّ الشرط if في لغة Kotlin تعبيرًا يعيد قيمة، وبالتالي لا حاجة للصيغة condition ? then : else لأن تعبير if يقوم بهذا الدور كما في الشيفرة الآتية: // الاستخدام الاعتيادي var max = a if (a < b) max = b // ...

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

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

أمان القيم الفارغة (Null) في لغة Kotlin

الأنواع Nullable والأنواع Non-Null يهدف نظام الأنواع في Kotlin إلى الحدِّ من أخطار القيمة الفارغة null في الشيفرات، إذ إنّ أحد الأخطاء الأكثر شيوعًا في لغات البرمجة -بما فيها لغة Java- هو أنّ محاولة الوصول إلى مرجعيّةٍ تحتوي على القيمة null سيؤدي إلى حدوث استثناءٍ مرجعيّ (reference exception)، ويُدعى هذا الاستثناء في لغة Java باسم NullPointerException أو NPE اختصارًا، أمّا Kotlin فهي تحدُّ من هذا الاستثناء ليقتصر على الحالات الآتية: استدعاءٌ صريحٌ بالشكل: throw NullPointerException()‎ استخدام المعامل !! (كما سيُشرح لاحقًا) ...

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

تنشئ الدالة Regex()‎ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. البنية العامة Regex(pattern: String) Regex(pattern: String, option: RegexOption) Regex(pattern: String, options: Set<RegexOption>) تنشئ الدالة Regex()‎ تعبيرًا نمطيًا من النمط pattern مع ضبطه وفقًا الخيار option أو مجموعة الخيارات options (أو القيمة الافتراضية لهذه الخيارات إن لم يعطَ الوسيط option) التي تضبط ذلك النمط. المعاملات pattern سلسلة نصية تمثل النمط الذي سينشأ منه تعبير نمطي. option كائن من النوع RegexOption يحوي خيارًا واحدًا من خيارات التعابير النمطية. options مجموعة تتألف من ...

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

تنشئ الدالة Regex()‎ تعبيرًا نمطيًا (regular expression) انطلاقًا من السلسلة النصية المُمرّرة إليه. البنية العامة Regex(pattern: String) Regex(pattern: String, option: RegexOption) Regex(pattern: String, options: Set<RegexOption>) تنشئ الدالة Regex()‎ تعبيرًا نمطيًا من النمط pattern مع ضبطه وفقًا الخيار option أو مجموعة الخيارات options (أو القيمة الافتراضية لهذه الخيارات إن لم يعطَ الوسيط option) التي تضبط ذلك النمط. المعاملات pattern سلسلة نصية تمثل النمط الذي سينشأ منه تعبير نمطي. option كائن من النوع RegexOption يحوي خيارًا واحدًا من خيارات التعابير النمطية. options مجموعة تتألف من ...

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

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

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

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

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

المجالات (Ranges) في لغة Kotlin

استخدام المجالات تُصاغُ تعابير المجالات (range expressions) من خلال دوال rangeTo التي تعتمد على المعامل .. والذي بدوره يتُمَّم بالمعاملين inو ‎!in، إذ من الممكن أن يُعرَّف المجال لأيّ نوعٍ يقبل المقارنة، أما في حالة الأنواع الأساسيّة المتكاملة (integral primitive types) فلها تعريف استخدام مُحسَّن (optimized)، وهذه بعض الأمثلة: if (i in 1..10) { // مكافئ للصياغة // 1 <= i && i ...

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

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

عوامل الأعداد الثنائية في PHP

تتيح عوامل الأعداد الثنائية تقدير ومعالجة بتات (bits) معينة ضمن العدد الصحيح. مثال الاسم النتيجة ‎$a & $b And و يُعيد 1 مكان كل بت له القيمة 1 في كلٍّ من ‎$a و ‎$b. ‎$a | $b Or أو (الضمنية) يُعيد 1 مكان كل بت له القيمة 1 في ‎$a أو ‎$b أو كلاهما. ‎$a ^ $b Xor أو (غير الضمنية) يُعيد 1 مكان كل بت له القيمة 1  في ‎$a أو ‎$b وليس كلاهما. ‎~ $a Not النفي يعكس ...

عوامل الأعداد الثنائية في PHP

تتيح عوامل الأعداد الثنائية تقدير ومعالجة بتات (bits) معينة ضمن العدد الصحيح. مثال الاسم النتيجة ‎$a & $b And و يُعيد 1 مكان كل بت له القيمة 1 في كلٍّ من ‎$a و ‎$b. ‎$a | $b Or أو (الضمنية) يُعيد 1 مكان كل بت له القيمة 1 في ‎$a أو ‎$b أو كلاهما. ‎$a ^ $b Xor أو (غير الضمنية) يُعيد 1 مكان كل بت له القيمة 1  في ‎$a أو ‎$b وليس كلاهما. ‎~ $a Not النفي يعكس ...

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

معامل التجميع في JavaScript

معامل التجميع (grouping operator) وهو ( ) يتحكم بأولوية تقدير قيمة التعابير (expressions). البنية العامة ( ) الوصف معامل التجميع يتألف من زوجٍ من الأقواس الهلالية التي تحيط بتعبير (expression) أو تعبيرٍ فرعي (sub-expression) لتجاوز أولوية المعاملات العادية لكي يمكن تقدير قيمة التعابير ذات الأولوية المنخفضة قبل التعابير ذات الأولوية الأعلى منها. أمثلة مثال عن تجاوز أولوية الضرب والقسمة أولًا، ثم الجمع والطرح لجعل عملية الجمع تُجرى أولًا: var a = 1; var b = 2; var c = 3; // الأولوية ...

القوسان {} المعقوصان في أردوينو

القوسان المعقوصان {} (curly braces، أو تدعى braces فقط أو curly brackets) هما جزء لا يتجزأ من لغة C. يستعملان في بُنى عديدة مثل بنى التحكم وغيرها وهذا يربك أحيانًا المبتدئين أثناء تعلمهم اللغة. يجب أن يُغلَق القوس المعقوص } الافتتاحي بالقوس المعقوص { الختامي دومًا. أي يجب أن تكون الأقواس المعقوصة في حالة توازن دائمة. تتضمن بيئة عمل أردوينو (Arduino IDE) ميزة التحقق من توازن الأقواس المعقوصة. حدِّد فقط أحد الأقواس المعقوصة أو اضغط على نقطة الإدخال التي تلي ...

التصريح عن الدوال في JavaScript

التصريح عن الدالة (function declaration) يُعرِّف دالةً لها معاملات (parameters) معيّنة. يمكن أيضًا تعريف الدوال عبر الدالة البانية Function وعبر تعابير تعريف الدوال (function expression). البنية العامة function name([param,[, param,[..., param]]]) { [statements] } name اسم الدالة. param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي يُفسِّر اللغة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. الوصف الدالة المُصرَّح عنها هي كائن Function يملك وصولًا إلى جميع خاصياته ودواله ولها نفس ...

الدالة var_dump()‎ في PHP

(PHP 4, PHP 5, PHP 7) تستخلص الدالة var_dump()‎‎‎ معلومات حول المتغيّر. الوصف void var_dump ( mixed $expression [, mixed $... ] ) تعرض هذه الدالة معلومات مُنظَّمة حول واحد أو أكثر من التعابير (expressions) بما في ذلك نوعها وقيمتها. تُستكشف المصفوفات والكائنات بشكل تكراري مع قيم بغرض إظهار البنية. تُعاد كافة خصائص الكائنات المحميّة والخاصّة والعامّة ما لم يعتمد الكائن التابع debugInfo()‎__ (اعتُمِدَ في إصدار PHP 5.6.0). فائدة: كما هو الحال مع أي شيء يُخرِج نتائجه مباشرةً إلى المتصفّح، يُمكِن ...

الاستثناء re.error()‎ في بايثون‎

تطلق اللغة هذا الاستثناء عند تمرير سلسلة نصية غير صالحة كتعبير نمطي إلى إحدى الدوال السابقة (كأن تتضمن السلسلة أقواسًا غير متطابقة)، أو عند حدوث أخطاء أخرى أثناء عملية التصريف أو المطابقة. لا يعد خلوّ السلسلة النصية من التطابقات خطأً على الإطلاق. البنية العامة re.error(msg, pattern=None, pos=None) الخاصيات تمتلك نسخة الخطأ الخصائص الإضافية التالية: msg رسالة الخطأ غير المنسّقة. pattern التعبير النمطي. pos موقع حدوث الخطأ في تصريف التعبير النمطي (قد يأخذ القيمة None). lineno السطر الحاوي على قيمة الخاصية ...

الدوال (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 ، ...

المعامل void في JavaScript

المعامل void يُقدِّر قيمة التعبير المعطى (expression) ثم يُعيد القيمة undefined. البنية العامة void expression الوصف هذا المعامل يسمح بتقدير قيمة التعابير البرمجية للحصول على قيمة منها تساوي undefined (أي ستُنفَّذ تلك التعابير البرمجية لكن القيمة المعادة هي undefined). يُستخدَم المعامل void عادةً للحصول على القيمة الأوليّة undefined، وذلك باستخدام ‎void(0)‎ (أو الشكل المكافئ void 0)، يجدر بالذكر أنَّ هذا الاستخدام مفيدٌ إذا أعيد ضبط قيمة المتغير العام undefined إلى قيمة أخرى. أمثلة الدوال ذاتية الاستدعاء عند استخدام دالة ذاتية ...

الاستثناءات المعرفة من طرف المستخدم

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

الاستثناءات المعرفة من طرف المستخدم

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

تعبير الإعادة RETURN في SQL

تستخدم لإنهاء الدالة وإعادة قيمة ما للموقع الذي استُدعيت فيه الدالة، وتكون الصيغة العامّة بالشكل الآتي: RETURN [expression]; إذ إن expression هي قيمة التعبير التي ستُعاد (وقد تكون قيمة أوليّة scalar مباشرة أو قيمة مركّبة كسجل)، أما إن كانت الدالة تحتوي بتعريفها متحولات للخرج (من نوع OUT) أو عند الحاجة للخروج من الدالة فيُكتفى بكلمة RETURN فقط، أي بالشكل الآتي: RETURN; مثال تعيد الدالة الآتية double_it المُعرَّفة من المستخدم عبر محرك Oracle القيمة العددية (نوعها NUMBER) المُدخلة إليها بعد مضاعفتها: FUNCTION ...

أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي 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 ...

تعابير lambda في بايثون

يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية lambda، وتأخذ هذه الدوال الصيغة التالية: lambda arguments: expression تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية: def <lambda>(arguments): return expression على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها: lambda a, b: a+b يمكن استخدام دوال lambda عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغةً مختصرةً للطريقة الاعتيادية في تعريف الدوال. كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال ...

تعابير lambda في بايثون

يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية lambda، وتأخذ هذه الدوال الصيغة التالية: lambda arguments: expression تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية: def <lambda>(arguments): return expression على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها: lambda a, b: a+b يمكن استخدام دوال lambda عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغةً مختصرةً للطريقة الاعتيادية في تعريف الدوال. كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال ...

Kotlin/Topics

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

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

تعكس الدالة not()‎ القيمة المنطقيَّة المستدعاة معها. يمكن استعمال المعامل ! عوضًا عن هذه الدالة. البنية العامة operator fun not(): Boolean المعاملات other القيمة المنطقية الأخرى التي ستطبق عليها العملية. القيمة المعادة يعاد عكس القيمة المنطقية المعطاة. أمثلة استخدام الدالة ()not لعكس قيمة منطقية معينة: fun main(args: Array<String>) { val x = true println(x.not()) // false println(!x) // false } انظر أيضًا الدالة and()‎: تجري العملية and المنطقية ...

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

تجري الدالة or()‎ العملية or المنطقية بين قيمتين منطقيتين؛ خلافًا للمعامل ||، تتحقق هذه الدالة من كلا القيمتين المنطقيتين. البنية العامة infix fun or(other: Boolean): Boolean وجود الكلمة المفتاحية infix يدل على أنَّ هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً. المعاملات other القيمة المنطقية الأخرى التي ستطبق عليها العملية. القيمة المعادة تعاد قيمة منطقية تكون ناتج إجراء العملية or على القيمتين المعطيتين. أمثلة استخدام الدالة ()or لتطبيق العملية or على قيمتين منطقيتين: fun ...

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

تجري الدالة and()‎ العملية and المنطقية بين قيمتين منطقيتين؛ خلافًا للمعامل &&، تتحقق هذه الدالة من كلا القيمتين المنطقيتين. البنية العامة infix fun and(other: Boolean): Boolean وجود الكلمة المفتاحية infix يدل على أنَّ هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً. المعاملات other القيمة المنطقية الأخرى التي ستطبق عليها العملية. القيمة المعادة تعاد قيمة منطقية تكون ناتج إجراء العملية and على القيمتين المعطيتين. أمثلة استخدام الدالة ()and لتطبيق العملية and على قيمتين منطقيتين: fun ...

Kotlin/Native

ما هي تقنية Kotlin/Native؟ تُستخدَم تقنية Kotlin/Native لترجمة شيفرات Kotlin إلى الصيغة الثنائيّة الأساسيّة (native binaries) والتي لا تتطلَّب آلةً افتراضيّة (virtual machine) لتشغيلها، وتشمل كلًا من المعالجات الخلفيّة (أو السند الخلفي [backend]) المعتمدة على تقنيات مكتبة LLVM للمترجِم (compiler) وكذلك تعريف الاستخدام الأساسيّ (native implementation) من مكتبة التشغيل (runtime) في Kotlin، وقد صُمّمت هذه التقنية للسماح بالترجمة في منصّات العمل التي تكون فيها الآلات الافتراضيّة غير متاحةٍ أو مرغوبةٍ (مثل أنظمة iOS والأهداف المدمجة [embedded targets])، أو عندما يحتاج ...

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

تنشئ الدالة to()‎ عنصرًا من النوع Pair مكونًا من الكائن الذي استُدعي معه والمعامل الذي مُرّر إليه، أي العنصر that. البنية العامة infix fun <A, B> A.to(that: B): Pair<A, B> يُلاحَظ وجود الكلمة المفتاحية infix للدلالة على أن هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً، وللمزيد من التفاصيل راجع توثيق التدوين الداخلي للدوال (infix functions). المعاملات that الكائن المراد استعماله مع الكائن المعطى في إنشاء كائن من ...

yield*‎ في JavaScript

التعبير yield*‎ يُستخدَم لتفويض التنفيذ إلى دالة مولِّدة أخرى أو كائن iterable. البنية العامة yield* [[expression]]; expression التعبير الذي سيُعيد كائن iterable. الوصف سيؤدي التعبير yield*‎ إلى المرور على عناصر الكائن ويعطي كل قيمة أعادها هذا الكائن. قيمة التعبير yield*‎ نفسه هي القيمة المُعادة من الكائن iterable عند إغلاقه (أي عندما تكون قيمة الخاصية done هي true). أمثلة تفويض التنفيذ إلى دالة مولِّدة أخرى لاحظ أنَّ القيمة التي تعطيها (yield) الدالة g1()‎ ستُعاد عند استدعاء الدالة next()‎ مثل القيم ...

تعابير تعريف الدوال غير المتزامنة في JavaScript

الكلمة المحجوزة async function تُستخدَم لتعريف دوال غير متزامنة ضمن تعبير (expression). طريقة أخرى لتعريف الدوال غير المتزامنة في JavaScript هي التصريح عنها. البنية العامة async function name([param[, param[, ... param]]]) { statements } name اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]). param اسم الوسيط المُرَّر إلى الدالة. statements التعابير البرمجية التي تُشكِّل جسم الدالة. الوصف تعابير تعريف الدوال غير المتزامنة تشبه ...

for في JavaScript

التعبير البرمجي for يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة، ويليها تعبيرٌ برمجيٌ (وعادةً يكون قسمًا كتليًا [block statement]) سيُنفَّذ في كل تكرار للحلقة. البنية العامة for ([initialization]; [condition]; [final-expression]) statement initialization تعبير (يتضمن تعابير الإسناد) أو تصريح عن متغير، ويُستخدَم عادةً لتهيئة متغير العدّاد؛ وهذا التعبير قد يُصرِّح اختياريًا عن متغيرات جديدة باستخدام الكلمة المحجوزة var؛ وهذه المتغيرات ليست محليةً وتابعةً لحلقة التكرار، وإنما ستكون موجودةً في نفس ...

الدالة re.search()‎ في بايثون‎

تفحص الدالة السلسلة النصية بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المعطى، وتعيد كائن match المقابل. البنية العامة re.search(pattern, string, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. flags الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات. القيمة المعادة تعيد الدالة كائن match عند العثور على حالة تطابق بين التعبير النمطي والسلسلة ...

تعبير تعريف الدوال

الكلمة المحجوزة function تُستخدَم لتعريف دالة داخل تعبير (expression). يمكنك أيضًا تعريف الدوال عبر التصريح عنها function declaration أو عبر الدالة البانية Function. البنية العامة var myFunction = function [name]([param1[, param2[, ..., paramN]]]) { statements }; name اسم الدالة، ويمكن حذفه وحينئذٍ ستسمى الدالة بالدالة المجهولة؛ واسم الدالة لن يكون متاحًا إلا داخل الدالة نفسها (يمكن أن يستعمل لتنفيذها تعاوديًا [recursively]). param اسم الوسيط المُرَّر إلى الدالة، العدد الأقصى للوسائط التي يمكن تمريرها إلى الدالة يختلف حسب المحرِّك الذي ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

الدالة re.fullmatch()‎ في بايثون‎

تتحقّق الدالة ممّا إذا كانت السلسلة النصية بأكملها مطابقة للتعبير النمطي المعطى. البنية العامة re.fullmatch(pattern, string, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. flags الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات. القيمة المعادة إن طابقت السلسلة النصية بأكملها التعبير النمطي المعطى، فستعيد الدالة كائن match المقابل، وتعيد القيمة None إن لم تطابق السلسلة ...

المعامل await في JavaScript

المعامل await يُستخدَم لانتظار وعد (الكائن Promise)، ويمكن أن يُستخدَم داخل دالة غير متزامنة فقط (async function). البنية العامة [rv] = await expression; expression كائن Promise أو أيّة قيمة يجب انتظارها. rv إعادة قيمة المُحققة للوعد (الكائن Promise)، أو القيمة نفسها إذا لم تكن وعدًا. الوصف التعبير await يؤدي إلى إيقاف تنفيذ دالة غير متزامنة (async function) ريثما يتحقق (fulfill) أو يُرفَض (reject) الوعد (الكائن Promise)، ويؤدي إلى استئناف تنفيذ الدالة غير المتزامنة بعد أن يتحقق الوعد، وعند استنئاف الدالة ...

class في JavaScript

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

الدالة eval()‎ في بايثون

تُستخدم الدّالة eval()‎ لتقدير (evaluate) تعبير بايثون. يُقدّر التّعبير المُعطى باستخدام مُعامل الكائنات العامّة globals والكائنات المحليّة locals. البنية العامة eval(expression, globals=None, locals=None) المعاملات expression سلسلة نصيّة تُمثّل تعبير بايثون المُراد تقديره أو كائن شيفرة كذلك الذي تُعيده الدّالة compile()‎. globals مُعامل اختياريّ. قاموس يُمثّل الكائنات العامّة التي ستُمرّر إلى التّعبير. إن مُرّر هذا المُعامل دون الكائن ‎_‎_‎builtins‎_‎_‎، فستُنسَخ الكائنات العامّة الحاليّة وتُمرّر إلى المُعامل قبل مُعالجة التّعبير. ما يعني أنّ التّعبير يحصل طبيعيًّا على كامل حقوق الوصول إلى الوحدة ...

الدالة re.finditer()‎ في بايثون‎

تعيد الدالة كائنًا قابلًا للتكرار iterator ينتج عنه كائنات match لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المعطى على السلسلة النصية المعطاة. البنية العامة re.finditer(pattern, string, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. flags الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات. القيمة المعادة تعيد الدالة كائنًا قابلًا للتكرار iterator ينتج ...

الدالة re.match()‎ في بايثون‎

تفحص الدالة بداية السلسلة النصية بحثًا عن حالة تطابق مع التعبير النمطي المعطى، وتعيد كائن match المقابل. البنية العامة re.match(pattern, string, flags=0) المعاملات pattern التعبير النمطي المستخدم لإجراء عملية المطابقة. string السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق. flags الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات. القيمة المعادة تعيد الدالة كائن match المقابل إن عثرت على صفر أو أكثر من المحارف في بداية ...

الدالة print_r()‎ في PHP

(PHP 4, PHP 5, PHP 7) تطبع الدالة print_r()‎‎‎‎‎‎‎‎‎‎‎‎‎‎ معلومات مقروءة من قبل الإنسان حول متغيّر ما. الوصف mixed print_r ( mixed $expression [, bool $return = FALSE ] ) تعرض الدالة print_r()‎ معلومات حول المتغيّر بطريقة مقروءة من قبل الإنسان. تُظهِر الدوال print_r()‎، و var_dump()‎، و var_export()‎ أيضًا الخصائص المحميّة (protected) والخاصّة (private) للكائنات، ولكنّها لا تُظهِر الأعضاء الثابتة للصنف. المعاملات expression التّعبير المُرَاد طباعته. return نستخدم المُعامِل return إذا كنّا نرغب بالتقاط خرج الدالة print_r()‎. عندما تكون قيمة المُعامِل ...

تعديل العرض ALTER VIEW

يستخدم هذا الأمر لتعديل عرضٍ مُنشَأ مسبقًا عبر الأمر CREATE VIEW، وله الصيغ الآتية: ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] col_name SET DEFAULT expression; لتحديد قيمة افتراضية expression للعمود col_name الموجود في العرض name (إن وُجد). ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] col_name DROP DEFAULT; لحذف القيمة الافتراضية للعمود col_name الموجود في العرض name (إن وُجد). ALTER VIEW [ IF EXISTS ] name OWNER TO new_owner; لنقل ملكية العرض name إلى المالك new_owner. ...

Python/fnmatch

تُقدم هذه الوحدة دعمًا لwildcards المماثلة لنمط صدفة يونكس، وهي ليست نفسها التعابير النظامية Regular Expression (المذكورة في الوحدة re)، فالرموز الخاصة التي تستخدمها الwildcards من نمطصدفة يونكس هي التالية: النمط المعنى * يطابق كل شيء ? يطابق أي محرف مفرد [seq] يطابق أي محرف من المحارف المذكورة بين القوسين [seq!] يطابق أي محرف من المحارف المذكورة غير بين القوسين وفي حال الرغبة في مطابقة المحرف '?' حرفيًّا (وليس مدلوله الخاص) عندها يمكن وضعه بين قوسين مربعين [?].

الدوال السهمية في JavaScript

تعبير الدوال السهمية (arrow function expression) له بنيةٌ عامةٌ مختصرةٌ أكثر من تعبير تعريف الدوال، ولا يملك قيم this أو arguments أو super أو new.target خاصة به؛ والدوال السهمية تناسب الدوال التي لا تكون أعضاءً في كائنٍ ما، وتلك التي لن تُستخدَم كدالة بانية. البنية العامة البنية الأساسية (param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression // ستُقدَّر إلى: (param1, param2, …, paramN) => { return expression; } // الأقواس اختيارية عندما يكون هنالك وسيطٌ وحيدٌ فقط (singleParam) ...

معامل الفاصلة في JavaScript

معامل الفاصلة (comma operator) يُقدِّر القيم التي يجري عمليته عليها (من اليسار إلى اليمين) ويُعيد قيمة آخر قيمة. البنية العامة expr1, expr2, expr3... expr1 و expr2 و expr3 أيّة تعابير (expressions) برمجية. الوصف يمكنك استخدام معامل الفاصلة عندما تريد تضمن عدِّة تعابير (expressions) في مكان يسمح بتعبيرٍ واحد؛ وأكثر استخدام شائع لهذا المعامل هو توفير أكثر من متغير لحلقة for. أمثلة استخدام معامل الفاصلة مع حلقة التكرار for إذا كانت لدينا مصفوفة باسم a وهي مصفوفةٌ ثنائيةُ الأبعاد في كل ...

throw في JavaScript

التعبير البرمجي throw يؤدي إلى رمي استثناء (exception) يُعرِّفه المستخدم، وسيؤدي ذلك إلى توقف تنفيذ الدالة الحالية (أي أنَّ التعابير البرمجية بعد throw لن تُنفَّذ) وسينتقل التنفيذ إلى أوّل catch، وإذا لم تكن موجودةً فسينتهي تنفيذ البرنامج. البنية العامة throw expression; expression التعبير الذي سيُرمى. الوصف يُستخدَم التعبير throw لرمي استثناء، وعندما ترمي استثناءً فإنَّ قيمة expression تُحدِّد ما هي قيمة الاستثناء. أمثلة: throw 'Error2'; // توليد استثناء له قيمة نصية throw 42; // توليد استثناء ...

switch في JavaScript

التعبير البرمجي switch يُستخدَم لمطابقة قيمة تعبير برمجي باستخدام عبارة case، ثم يُنفِّذ التعابير البرمجية المرتبطة معها. البنية العامة switch (expression) { case value1: // التعابير البرمجية التي ستُطبِّق // عندما تُطابِق قيمةُ التعبير قيمةَ الحالة [break;] case value2: // التعابير البرمجية التي ستُطبِّق // عندما تُطابِق قيمةُ التعبير قيمةَ الحالة [break;] ... case valueN: ...

أسئلة شائعة عن لغة Kotlin

ما هي لغة Kotlin؟ تُعدُّ Kotlin إحدى لغات البرمجة مفتوحة المصدر (OSS) والمكتوبة ستاتيكيًّا، وتستهدف كلًا من بيئة JVM و Android و JavaScript و Native، وقد طُوِّرت من قِبل شركة JetBrains بدءًا من العام 2010 حيث كانت مفتوحة المصدر منذ بداياتها الأولى، ونٌشر الإصدار الرسميّ Kotlin 1.0 في الشهر الثاني (شباط) من عام 2016. ما النسخة الحاليّة للغة Kotlin؟ نٌشر الإصدار الأخير للغة Kotlin في الأوّل من الشهر الثالث (آذار) من عام 2018 وهو الإصدار Kotlin 1.2.30. هل Kotlin مجانيّة؟ ...

return في JavaScript

التعبير البرمجي return يؤدي إلى إنهاء تنفيذ الدالة ويُحدِّد قيمةً لتُعيدها الدالة إلى التعبير الذي استدعاها. البنية العامة return [[expression]]; expression التعبير البرمجي الذي ستُعاد قيمته، وإذا لم يُحدَّد فستُعاد القيمة undefined. الوصف عندما يُستخدَم التعبير البرمجي return في جسم الدالة، فسيتوقف تنفيذ الدالة؛ وستُعاد القيمة المعطية (إن وجِدَت) إلى التعبير الذي استدعى الدالة. فعلى سبيل المثال، ستعيد الدالة الآتية مربّع الوسيط x، على أن يكون الوسيط x رقميًا: function square(x) { return x * x; } var demo = ...

تعبير تعريف الأصناف في JavaScript

تعبير تعريف الأصناف (class expression) هو إحدى الطرائق المستخدمة لتعريف صنف في ECMAScript 2015، وهو شبيه بتعابير تعريف الدوال (function expressions)، ويمكن أن يكون تعبير تعريف الأصناف مسمىً أو غير مسمى، وإذا كان مسمى فسيكون اسم الصنف محليًا لجسم الصنف فقط؛ لاحظ أنَّ الأصناف في JavaScript تستخدم الوراثة عبر سلسلة prototype. البنية العامة var MyClass = class [className] [extends] { // محتويات الصنف }; الوصف يملك تعبير تعريف الأصناف شكلًا شبيهًا بالتصريح عن الأصناف (class declaration) لكن يمكنك حذف اسم ...

استخدام لغة Kotlin للتطوير في بيئة Android

تُعدُّ لغة Kotlin أداةً مناسبةً لتطوير تطبيقات Android لأنّها تزوِّد بمنصةٍ للعمل في نظام Android بميّزات لغات البرمجة الحديثة بدون فرض أي قيودٍ جديدة. ميزات استخدام لغة Kotlin للتطوير في بيئة Android التوافقيّة (Compitability): تتوافق لغة Kotlin كليًّا مع بيئة JDK6، وبهذا تتيح  تشغيل التطبيقات المكتوبة بلغة Kotlin على الأجهزة ذات الإصدارات الأقدم من أنظمة Android بدون أي مشاكل تُذكر، كما وتدعم برمجيةُ Android Studio أدوات لغة Kotlin بشكلٍ تامّ ومتوافقٍ مع أنظمة بناء Android. الأداء (Performance): تعمل التطبيقات المكتوبة ...

استخدام لغة Kotlin في نطاق JavaScript

تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...

الكلمات المفتاحية (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 ...

التعابير النمطية وأمثلة عن استخدام grep

التعابير النمطية Regular Expressions التعبير النمطي (Regular Expression) هو أسلوب يصف مجموعة من النصوص (strings)، وتُبنى تلك التعابير النمطية بشكل تناظري للتعابير الحسابية (arithmetic expressions) باستخدام عدة معامِلات لدمج التعابير الأصغر. وأصغر وحدة بنائية للتعابير النمطية هي تلك التي تطابق محرفًا واحدًا، ذلك أن أغلب المحارف -بما في ذلك كل الحروف والأرقام- ما هي إلا تعابير نمطية تطابق أنفسها، ويمكن اقتباس أي محرف خاص (metacharacter) له معنىً خاص بسبْقِه بشرطة مائلة خلفية \. المحارف الخاصة للتعابير النمطية يمكن إتْباع التعبير ...

دالة getter في JavaScript

البنية get تؤدي إلى ربط خاصية من خاصيات الكائن بدالة التي ستستدعى عند محاولة الوصول إلى قيمة تلك الخاصية. البنية العامة {get prop() { ... } } {get [expression]() { ... } } prop اسم الخاصية الذي سترتبط بالدالة المعطية. expression بدءًا من ECMAScript 2015 (أي ES6)، يمكن استخدام التعابير لإنشاء أسماء محسوبة للخاصيات التي سترتبط بالدالة المعطية. الوصف يمكن أن تستخدم دالة getter في JavaScript لتنفيذ دالة معيّنة عندما تتم محاولة الوصول إلى خاصية من خاصيات الكائن بغية إعادة قيمة ...

دمج المتغير المؤقت (Inline Temp)

المشكلة وجود متغيِّرٍ مؤقَّت (temporary) لحفظ قيمة تعبيرٍ (expression) بسيطٍ ولا شيء آخر سواه. الحل تبديل كلُّ مرجعيّةٍ (reference) للمتغيِّر ليحلَّ محلَّها التعبيرُ نفسه. مثال قبل إعادة التصميم نلاحظ في الشيفرة الآتية وجود متغيِّرٍ مؤقتٍ باسم basePrice لتخزين القيمة الناتجة عن تعبير استدعاء التابع order.basePrice()‎، والذي سيُستخدَم في التعليمة التالية لتعريفه: في لغة Java: boolean hasDiscount(Order order) { double basePrice = order.basePrice(); return basePrice > 1000; } في لغة #C: bool HasDiscount(Order order) { double basePrice = order.BasePrice(); return ...

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

القيمة false العامة (global) هي النسخة الوحيدة من الصنف FalseClass وتمثِّل قيمة الخطأ (false) في التعابير المنطقية (boolean expressions). يوفر هذا الصنف معاملات تسمح للقيمة false بالمساهمة بشكل صحيح في التعابير المنطقية. توابع الكائن العامة (Public Instance Methods) المعامل & يجري المعامل & العملية AND المنطقية بين القيمة false والكائن المعطى ثم يُعيد القيمة false. المعامل === يتحقق المعامل === من تساوي كائنين بشكل صارم. المعامل ^ يجري المعامل ^ العملية XOR المنطقية بين القيمة false وقيمة الكائن المعطى. inspect ...

الدالة Char.compareTo()‎ في Kotlin

توازن الدالة compareTo()‎ بين قيمة المحرف الذي استُدعي معها والقيمة المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة المحرف الذي استُدعي معها) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. البنية العامة fun compareTo(other: Char): Int المعاملات other المحرف الآخر الذي يراد موازنته مع المحرف المعطى. القيمة المعادة تعاد القيمة 0 إن كانت القيمة المعطاة متساوية مع قيمة الوسيط other، أو تعاد قيمة سالبة إن كانت القيمة الأولى ...

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

تجلب الدالة lastIndexOf()‎ فهرس آخر ظهور لعنصر محدَّد من المصفوفة أو المجموعة أو القائمة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة lastIndexOf()‎ مع المصفوفات، والمجموعات والقوائم: fun <T> Array<out T>.lastIndexOf(element: T): Int fun ByteArray.lastIndexOf(element: Byte): Int fun ShortArray.lastIndexOf(element: Short): Int fun IntArray.lastIndexOf(element: Int): Int fun LongArray.lastIndexOf(element: Long): Int fun FloatArray.lastIndexOf(element: Float): Int fun DoubleArray.lastIndexOf(element: Double): Int fun BooleanArray.lastIndexOf(element: Boolean): Int fun CharArray.lastIndexOf(element: Char): Int fun <T> Iterable<T>.lastIndexOf(element: T): Int fun <T> List<T>.lastIndexOf(element: T): Int القيم المعادة يعاد فهرس آخر ظهور للعنصر المعطى والموجود في المصفوفة أو المجموعة أو القائمة المعطاة، أو القيمة ‎-1 إن لم ...

الدالة CharSequence.indexOf()‎ في Kotlin

تجلب الدالة indexOf()‎ فهرس أول ظهور لمحرف أو سلسلة نصية محدَّدة من سلسلة المحارف التي استُدعيت معها. البنية العامة fun CharSequence.indexOf( char: Char, startIndex: Int = 0, ignoreCase: Boolean = false ): Int fun CharSequence.indexOf( string: String, startIndex: Int = 0, ignoreCase: Boolean = false ): Int المعاملات char المحرف المراد البحث عنه ضمن سلسلة من المحارف. startIndex السلسلة النصية المراد البحث عنها ضمن ...

الدالة Float.toFloat()‎ في Kotlin

تحوّل الدالة toFloat()‎ العدد الذي استُدعي معها إلى عدد عشري (أي من النوع Float). هذا قد يؤدي إلى تدوير العدد المراد تحويله. البنية العامة fun toFloat(): Float حلت الدالة Number.toFloat()‎ مكان هذه الدالة. القيمة المعادة يعاد عدد عشري (من النوع Float) يحوي العدد المعطى. أمثلة استعمال الدالة ()toFloat لتحويل عدد إلى عدد عشري: fun main(args: Array<String>) { val x : Float = 52.0f print(x.toFloat() ) // 52.0 } انظر أيضًا الدالة toByte()‎: تحول ...

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

تجلب الدالة takeWhile()‎ أول عناصر محققة لشرطٍ محدَّدٍ من المصفوفة أو القائمة التي استُدعيت معها.  البنية العامة inline fun <T> Array<out T>.takeWhile( predicate: (T) -> Boolean ): List<T> inline fun ByteArray.takeWhile( predicate: (Byte) -> Boolean ): List<Byte> inline fun ShortArray.takeWhile( predicate: (Short) -> Boolean ): List<Short> inline fun IntArray.takeWhile( predicate: (Int) -> Boolean ): List<Int> inline fun LongArray.takeWhile( predicate: (Long) -> Boolean ): List<Long> inline fun FloatArray.takeWhile( predicate: (Float) ...

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

توازن الدالة compareTo()‎ بين قيمة العنصر الذي استُدعيت معه والقيمة المُمرّرة إليه ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. البنية العامة fun compareTo(other: Boolean): Int (source) المعاملات other القيمة المنطقية الأخرى التي ستطبق عليها العملية. القيمة المعادة تعاد القيمة 0 إن كانت القيمة المعطاة متساوية مع القيمة other، أو تعاد قيمة سالبة إن ...

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

تحول الدالة toString()‎ تعبيرًا نمطيًّا إلى سلسلة نصية (أي نمط [Pattern] ذلك التعبير النمطي). البنية العامة fun toString(): String القيمة المعادة تعاد سلسلة نصية تمثل التعبير النمطي المعطى. أمثلة استعمال الدالة toString()‎ لتحويل تعبير نمطيّ إلى سلسلة نصية: fun main(args: Array<String>) { // يطابق التعبير النمطي التالي القيم العددية val reg = Regex("""-?\d+(\.\d+)?""") println(reg.toString()) // => -?\d+(\.\d+)? } انظر أيضًا الدالة toPattern()‎: تحول كائنًا من النوع Regex (تعبيرًا نمطيًا) إلى النوع Pattern (نمط).  ...

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

تجلب الدالة substringAfter()‎ كل الجزء الواقع بعد أول ظهور لمحرف أو لسلسلة نصية معينة في سلسلة نصية. البنية العامة fun String.substringAfter( delimiter: Char, missingDelimiterValue: String = this ): String (source) fun String.substringAfter( delimiter: String, missingDelimiterValue: String = this ): String المعاملات delimiter المحرف أو السلسلة النصية التي يراد جلب كامل الجزء الواقع بعدها. missingDelimiterValue السلسلة النصية التي ستعاد في حال لم يكن المعامل delimiter موجودًا ضمن السلسلة النصية المعطاة. القيمة الافتراضية هي: this (أي السلسلة النصية المعطاة نفسها). القيم المعادة ...

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