نتائج البحث

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

Python/types

تقدّم هذه الوحدة عددًا من الدوال المساعدة لإنشاء أنواع بيانات جديدة بصورة ديناميكية، إضافة إلى أنّها تعرّف أسماءً لبعض أنواع الكائنات التي يستخدمها مفسّر بايثون المعياري، ولكنّها ليست كائنات داخلية مثل int أو str، إلى جانب أنّ هذه الوحدة تقدم بعض الأصناف والدوال المساعدة الخاصة ببعض الأنواع، والتي لا تعدّ أساسية بما يكفي لتصبح أصنافًا ودوالّ داخلية. إنشاء الأنواع ديناميكيًا تقدّم هذه الوحدة ثلاث دوالّ تساعد في إنشاء أنواع البيانات ديناميكيًا: الدالة types.new_class()‎‎ تنشئ هذه الدالة ديناميكيًا كائن صنف باستخدام ...

أنواع البيانات (Data Types) في Kotlin

إن كلَّ عنصرٍ في Kotlin يعد كائنًا إذ يمكن استدعاء الدوال (member functions) والخاصّيّات (properties) عبر أي متغيِّر (variable)، ولبعض الأنواع تمثيلها الداخلي الخاص بها؛ فعلى سبيل المثال تُمثَّل الأعداد والمحارف والقيم المنطقية (boolean) كقيمٍ أساسيّةٍ أثناء التشغيل (runtime) ولكنها بالنسبة للمستخدم مجرّد أصنافٍ عادية، وتناقش هذه الصفحة الأنواع الرئيسيّة للبيانات في Kotlin وهي: الأعداد، والمحارف، والقيم المنطقية (boolean)، والمصفوفات، والسلاسل النصيّة. الأعداد (Numbers) تتعامل لغة Kotlin مع البيانات العدديّة بطريقةٍ مماثلةٍ للغة Java ولكن بفوارق بسيطة، فلا تدعم مثلًا ...

الصنف ‎:first-of-type

الصنف الزائف ‎:first-of-type في CSS (أي pseudo-class) يُمثِّل أوّل عنصر من نوعه في مجموعة من العناصر الأخوة. p:first-of-type { color: red; } ملاحظة: عندما عُرِّف هذا الصنف كان من الضروري أن يملك العنصر أبًا، لكن بدءًا من مواصفة Selectors Level 4 لم يعد ذلك ضروريًا. الشكل العام لهذا المحدد: :first-of-type أمثلة لاحظ كيف ستُنسَّق أوّل فقرة <p> من بين العناصر الأخوة: <h2>الترويسة</h2> <p>النص 1</p> <p>النص 2</p> شيفرة CSS: p:first-of-type { color: red; font-style: italic; } لاحظ كيف يمكن استخدام هذا المُحدِّد على العناصر المتشعبة، ...

الصنف :nth-of-type()

الصنف الزائف ‎:nth-of-type()‎ في CSS (أي pseudo-class) يُطابِق عنصرًا أو أكثر من نوعٍ معيّن بناءً على موقعه ضمن مجموعة من العناصر الأخوة (siblings). هذا المُحدِّد يُحدِّد جميع عناصر <p> التي ترتيبها هو الرابع ضمن أي مجموعة من الأخوة: p:nth-of-type(4n) { color: lime; } يقبل هذا الصنف الزائف وسيطًا واحدًا يمُثِّل نمط مُطابقة العناصر: الكلمة المحجوزة odd تُمثِّل العناصر التي يكون ترتيبها بين إخوتها فرديًا، أي 1 و 3 و 5 ...إلخ. ويبدأ العد من البداية إلى النهاية. الكلمة المحجوزة even تُمثِّل ...

الصنف ‎:last-of-type

الصنف الزائف ‎:last-of-type في CSS (أي pseudo-class) يُمثِّل آخر عنصر من نوعه في مجموعة من العناصر الأخوة. p:last-of-type { color: lime; } ملاحظة: عندما عُرِّف هذا الصنف كان من الضروري أن يملك العنصر أبًا، لكن بدءًا من مواصفة Selectors Level 4 لم يعد ذلك ضروريًا. الشكل العام لهذا المحدد: :last-of-type أمثلة لاحظ كيف ستُنسَّق آخر فقرة <p> من بين العناصر الأخوة: <h2>الترويسة</h2> <p>النص 1</p> <p>النص 2</p> شيفرة CSS: p:last-of-type { color: red; font-style: italic; } لاحظ كيف يمكن استخدام هذا المُحدِّد على العناصر المتشعبة، ...

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

تعيد الدّالة type()‎ نوع الكائن المُعطى إن مُرّر مُعامل واحد لها. وتعيد كائن نوعٍ (type object) جديد إن مُرّرت لها ثلاثة مُعاملات. البنية العامة type(object) type(name, bases, dict) المعاملات تقبل الدّالة type()‎ إمّا مُعاملًا واحدًا فقط، أو ثلاثة مُعاملات كما هو واضح في البنية العامّة أعلاه. عند استدعائها بمُعامل واحد فقط، ستُعيد الدّالة نوع الكائن المُمرّر. أمّا عند الاستدعاء بثلاثة مُعاملات، فسيُعاد كائن نوعٍ جديد. وهو طريقة ديناميكيّة لإنشاء الأصناف كبديل للجملة class. object عند استدعائها بمُعامل واحد فقط، يُمثّل هذا ...

التسمية البديلة للأنواع (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 ...

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

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

الصنف ‎:nth-last-of-type()‎

الصنف الزائف ‎:nth-last-of-type()‎ في CSS (أي pseudo-class) يُطابِق عنصرًا أو أكثر من نوعٍ معيّن بناءً على موقعه ضمن مجموعة من العناصر الأخوة (siblings). بدءًا من النهاية إلى البداية. هذا المُحدِّد يُحدِّد جميع عناصر <p> التي ترتيبها هو الرابع ضمن أي مجموعة من الأخوة، والعد يبدأ من النهاية: p:nth-last-of-type(4n) { color: lime; } ملاحظة: هذا الصنف الزائف يماثل الصنف ‎:nth-of-type إلا أنه يبدأ عدّ العناصر من النهاية إلى البداية، عكس الصنف ‎:nth-of-type الذي يبدأ العد من البداية إلى النهاية. رجع صفحة الصنف ...

الخاصية list-style-type

الخاصية list-style-type في CSS تُحدِّد شكل الإشارة إلى عناصر القائمة. بطاقة الخاصية القيمة الابتدائية disc تُطبَّق على عناصر القوائم. قابلة للوراثة نعم قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* قائمة مختصرة بأنواع الأشكال */ list-style-type: disc; list-style-type: circle; list-style-type: square; list-style-type: decimal; list-style-type: arabic-indic; /* <string> */ list-style-type: '-'; /* @counter-style rule */ list-style-type: custom-counter-style; list-style-type: none; /* القيم العامة */ list-style-type: inherit; list-style-type: initial; list-style-type: unset; ملاحظة: هذه الخاصية ستُطبَّق على عناصر القوائم، أي العناصر التي تكون قيمة الخاصية display فيها تساوي list-item، وهذا يتضمن العنصر <li> افتراضيًا؛ لكن لاحظ أنَّ قيمة ...

CSS/Topics/Data Type

نوع البيانات الوصف angle نوع البيانات <angle> في CSS يستعمل لتمثيل القيم الزاويّة بالدرجات (degrees) أو بالغراد (grad) أو بالراديان (radians) أو بالدورات (turns)، ويمكن استخدام هذا النوع في التدرجات اللونية <gradient> وبعض دوالtransform. blend-mode نوع البيانات <blend-mode> في CSS يستعمل لوصف كيف يجب أن تمتزج الألوان عند تداخل طبقات الخلفات مع بعضها بعضًا. فلكل بكسل من بكسلات الطبقة التي طُبِّق عليها نمط الامتزاج، فسيأخذ اللون من الخلفية ومن الأمامية، وستُجرى عملية حسابية عليه، ويُعاد لونٌ جديدٌ سيستخدم مكان تداخل الطبقات. color value نوع البيانات <color> في CSS ...

المحدد ‎‎‎:nth-of-type()‎‎ في jQuery

المحدد ()‎:nth-of-type الوصف يختار هذا المحدِّد عناصر ذات موقع محدد ضمن مجموعة من العناصر الأخوة (أي جميعها أبناء لعناصر أخرى) التي لها اسم العنصر ذاته. jQuery( ":nth-of-type(index/even/odd/equation)" )‎ أُضيف مع الإصدار: 1.9. index فهرس العنصر الابن المراد مطابقته، ويبدأ العد من القيمة 1 بدءًا من بداية المجموعة (أي فهرس أول عنصر في المجموعة هو 1). ويمكن استعمال الكلمة المحجوزة even التي تُمثِّل العناصر التي يكون ترتيبها بين إخوتها فرديًا، أو الكلمة المحجوزة odd التي تُمثِّل العناصر التي يكون ترتيبها بين ...

التحقق من الأنواع (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) يتتبَّع ...

المحدد ‎‎‎:nth-last-of-type()‎‎ في jQuery

المحدد ()‎:nth-last-of-type الوصف يختار هذا المحدِّد عناصر ذات موقع محدَّد ضمن مجموعة من العناصر الأخوة (أي جميعها أبناء لعناصر أخرى) التي لها اسم العنصر ذاته وذلك بدءًا من نهاية المجموعة وحتى بدايتها. jQuery( ":nth-last-of-type(index/even/odd/equation)" )‎ أُضيف مع الإصدار: 1.9. index فهرس العنصر الابن المراد مطابقته، ويبدأ العد من القيمة 1 بدءًا من نهاية المجموعة (أي فهرس آخر عنصر في المجموعة هو 1). ويمكن استعمال الكلمة المحجوزة even التي تُمثِّل العناصر التي يكون ترتيبها بين إخوتها فرديًا، أو الكلمة المحجوزة odd ...

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

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

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

تعيد الدالة asDynamic()‎ قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكي (dynamic type)، الذي يُسمَح بإسناده إلى أي متغيّر أو تمريره كمتغيّر وسيط (argument) أيًّا كان نوعه. بيئة التشغيل المطلوبة:  JS البنية العامة inline fun Any?.asDynamic(): dynamic يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة من النوع الديناميكي (dynamic type). انظر أيضًا الدوال المباشرة (inline functions) في لغة Kotlin. مصادر صفحة الدالة ...

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

تعيد الدالة asDynamic()‎ قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكي (dynamic type)، الذي يُسمَح بإسناده إلى أي متغيّر أو تمريره كمتغيّر وسيط (argument) أيًّا كان نوعه. بيئة التشغيل المطلوبة:  JS البنية العامة inline fun Any?.asDynamic(): dynamic يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة من النوع الديناميكي (dynamic type). انظر أيضًا الدوال المباشرة (inline functions) في لغة Kotlin. مصادر صفحة الدالة ...

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

Kotlin/Topics

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

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

تسمح الدالة iterator()‎ بالتكرار (iterate) على كائنٍ ديناميكيّ (dynamic) في الحالات الآتية: إن كان لديه دالة تكراريّة (iterator function). إن كان مصفوفةً (array). إن كان نسخةً (instance) من Kotlin.collections.Iterable. البنية العامة operator fun dynamic.iterator(): Iterator<dynamic> بيئة التشغيل المطلوبة: JS. ويُلاحظ وجود الكلمة المفتاحيّة operator للدلالة على أنّ هذه الدالة مرتبطٌ بمعامل التكرار (iteration operator). انظر أيضًا الدالة ()asDynamic: تعيد قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكيّ (dynamic type). مصادر صفحة الدالة iterator()‎ في التوثيق الرسميّ للمكتبة القياسيّة ...

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

تسمح الدالة iterator()‎ بالتكرار (iterate) على كائنٍ ديناميكيّ (dynamic) في الحالات الآتية: إن كان لديه دالة تكراريّة (iterator function). إن كان مصفوفةً (array). إن كان نسخةً (instance) من Kotlin.collections.Iterable. البنية العامة operator fun dynamic.iterator(): Iterator<dynamic> بيئة التشغيل المطلوبة: JS. ويُلاحظ وجود الكلمة المفتاحيّة operator للدلالة على أنّ هذه الدالة مرتبطٌ بمعامل التكرار (iteration operator). انظر أيضًا الدالة ()asDynamic: تعيد قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكيّ (dynamic type). مصادر صفحة الدالة iterator()‎ في التوثيق الرسميّ للمكتبة القياسيّة ...

الدالة ‎‎unsafeCast()‎ للتحويل غير الآمن بين الأنواع في Kotlin

يحوِّل المعامل as الكائن الذي استُدعي عبره إلى نوعٍ  آخر (T) بشكلٍ غير آمن (unsafe) أي بدون التحقُّق من الأنواع، فإن  كان التحويل غير جائزٍ، فسيُعلِم المُترجم بوجود خطأٍ، ويعبِّر المعامل as عن استدعاء الدالة unsafeCast()‎ التي تجري عملية التحويل الفعليّ. البنية العامة inline fun <T> Any?.unsafeCast(): T يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة الكائن (object) بعد تحويله إلى النوع الآخر المُحدَّد (T). ...

الدالة ‎‎unsafeCast()‎ للتحويل غير الآمن بين الأنواع في Kotlin

يحوِّل المعامل as الكائن الذي استُدعي عبره إلى نوعٍ  آخر (T) بشكلٍ غير آمن (unsafe) أي بدون التحقُّق من الأنواع، فإن  كان التحويل غير جائزٍ، فسيُعلِم المُترجم بوجود خطأٍ، ويعبِّر المعامل as عن استدعاء الدالة unsafeCast()‎ التي تجري عملية التحويل الفعليّ. البنية العامة inline fun <T> Any?.unsafeCast(): T يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة الكائن (object) بعد تحويله إلى النوع الآخر المُحدَّد (T). ...

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

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

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

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

الأنواع المُعمَّمة (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 لها ...

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

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

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

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

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

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

التساوي (Equality) في لغة Kotlin

تحتوي لغة Kotlin على نوعين من التساوي: التساوي البنيويّ (structural equality): يكون التحقُّق فيه عبر الدالة equals()‎. التساوي المرجعيّ (referential equality): وهو التحقُّق من الإشارة إلى نفس الكائن (object). التساوي البنيويّ (Structural Equality) يعتمد التساوي البنيويّ على المعامل == ونفيه =! ، إذ يُترجَم التعبير a == b إلى الصيغة: a?.equals(b) ?: (b === null) فإن لم يحتوِ المتغيِّر a على القيمة الفارغة null فستُستدعَى الدالةequals(Any?)‎ ، أما إن كانت قيمته null فيجري التحقُّق من أنّ b مساوٍ -مرجعيًّا- للقيمة null. ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

تبديل رموز الأنواع بالحالة/الاستراتيجية (Replace Type Code with State/Strategy)

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

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

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

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

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

التحكم بالتدفق (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 // ...

الدالة 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 الكائن المراد استعماله مع الكائن المعطى في إنشاء كائن من ...

الدوال من المرتبة الأعلى (Higher-Order Functions) و Lambdas

الدوال من المرتبة الأعلى (Higher-Order Functions) وهي الدوال التي تقبل دوالًا أخرى كمعاملاتٍ (parameters) لها، أو تلك التي تُعيد (return) دوالًا أخرى كنتيجة لها، وكمثالٍ عنها لنأخذ الدالة lock()‎، وهي الدالة التي تقبل كائنًا lock ودالةً أخرى، حيث ستحصلُ الدالة على الكائن lock وتُنفِّذُ الدالةَ الوسيطةَ ثم تُحرِّر القفل في النهاية، كما في الشيفرة: fun <T> lock(lock: Lock, body: () -> T): T { lock.lock() try { ...

Object.prototype.constructor

الخاصية Object.prototype.constructor تُعيد مرجعيةً إلى الدالة البانية Object التي تُنشِئ نسخةً (instance) من الكائن؛ لاحظ أنَّ قيمة هذه الخاصية تُشير إلى الدالة نفسها وليست سلسلةً نصيةً تحتوي على اسم الدالة؛ وتكون هذه القيمة للقراءة فقط في القيم الأوليّة مثل 1 و true و "test". الوصف جميع الكائنات تملك الخاصية constructor، والكائنات المُنشأة دون استخدام الدالة البانية مباشرةً (أي الشكل المختصرة لإنشاء الكائنات والمصفوفات) ستملك الخاصية constructor التي تُشير إلى الدالة البانية الأساسية لنوع الكائنات التي تتبع له. var o = ...

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

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

استبدال المُنشئ بتابع التصميم (Replace Constructor with Factory Method)

المشكلة لديك مُنشئ (constructor) معقد يقوم بما هو أكثر من مجرد وضع قيم المعامل في حقول الكائن. الحل إنشاء تابع تصميم واستخدامه لاستبدال استدعاءات المُنشئ. مثال قبل إعادة التصميم وجود منشئ معقد للصنف Employee: في لغة Java: class Employee { Employee(int type) { this.type = type; } //... } في لغة C#‎: public class Employee { public Employee(int type) { this.type = type; } //... } في لغة PHP: class ...

الخاصية list-style

الخاصية list-style في CSS هي خاصية مختصرة تؤدي إلى ضبط قيم الخاصيات list-style-type و list-style-image و list-style-position. بطاقة الخاصية القيمة الابتدائية لكل قيمة مختصرة: list-style-type: disc list-style-position: outside list-style-image: none تُطبَّق على عناصر القوائم. قابلة للوراثة نعم قابلة للتحريك لا القيمة المحسوبة لكل قيمة مختصرة: list-style-image: القيمة none أو رابط URI مطلق للصورة. list-style-position: كما حُدِّدَت. list-style-type: كما حُدِّدَت. /* type */ list-style: square; /* image */ list-style: url('../img/shape.png'); /* position */ list-style: inside; /* type | position */ list-style: georgian inside; /* type | image | position */ list-style: lower-roman url('../img/shape.png') outside; /* ...

الأنواع المتقدمة في TypeScript

أنواع التقاطع (Intersection Types) يجمعُ نوعُ تقاطعٍ عدّة أنواع في نوع واحد. يسمح هذا بجمع الأنواع الموجودة في نوع واحد يملك جميع الميّزات التي تحتاج إليها. مثلًا، النوعُ ‎Person & Serializable & Loggable‎ هو من النّوع ‎Person‎ والنّوع ‎Serializable‎ والنّوع ‎Serializable‎، كلّها مجموعة في نفس النّوع. هذا يعني أنّ كائنًا ما من هذا النوع سيحتوي على جميع عناصر الأنواع الثلاثة. تُستعمل أنواع التّقاطع عادةً في المخاليط (mixins) والمبادئ الأخرى التي قد تكون غريبة على البرمجة كائنيّة التوجه العاديّة (وهي متواجدة ...

المحدد ‎:first-of-type‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في jQuery

المحدد ‎:first-of-type الوصف يحدد كل العناصر التي تكون الأولى بين العناصر الأخوة المجاورة لها ولها نفس اسم العنصر. jQuery( ":first-of-type" )‎ أُضيف مع الإصدار: 1.9. يطابق المحدد ‎:first-of-type العناصر التي ليس لها عنصر آخر له نفس العنصر الأب ونفس اسم العنصر قبل هذا العنصر في شجرة المستند. أمثلة البحث عن أول <span> في كل <div> مطابقة وإضافة صنف إليه: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>first-of-type demo</title> <style> span.fot { color: red; ...

الدالة 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 (أي السلسلة النصية المعطاة نفسها). القيم المعادة ...

الثابت Float.MAX_VALUE في Kotlin

يمثل الثابت Float.MAX_VALUE أكبر قيمة موجبة نهائية (finite) لعدد عشري (float). البنية العامة const val MAX_VALUE: Float أمثلة استخدام الثابت Float.MAX_VALUE لمعرفة أكبر عدد عشري موجب يمكن استعماله: fun main(args: Array<String>) { println(Float.MAX_VALUE) // 3.4028235E38 } انظر أيضًا الثابت Float.MIN_VALUE: يمثل أصغر قيمة موجبة غير صفرية يمكن أن يأخذها عدد عشري (float). الثابت Float.NEGATIVE_INFINITY: يمثل قيمة سالبة لا نهائية (infinity) لعدد عشري (float). الثابت Float.POSITIVE_INFINITY: يمثل قيمة موجبة لا نهائية (infinity) لعدد عشري (float). ...

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

تتحقَّق الدالة singleOrNull()‎ من حواية المصفوفة أو المجموعة أو القائمة التي استُدعيت معها عنصرًا واحدًا فقط، أو عنصرًا واحدًا محققًا لشرط معيَّن ثمَّ تعيده، أو تعيد القيمة null خلاف ذلك. البنية العامة إن استدعيت الدالة singleOrNull()‎ مع مصفوفة أو مجموعة أو قائمة دون تمرير أي معامل، فستتحقَّق من احتواء تلك المصفوفة أو المجموعة أو القائمة على عنصر واحد فقط ثمَّ تعيده. وفي حال كانت تلك المصفوفة أو المجموعة أو القائمة فارغةً أو تحوي أكثر من عنصر واحد، فستعيد الدالة singleOrNull()‎ القيمة null: fun <T> Array<out T>.singleOrNull(): T? ...

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

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

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

تعيد الدالة unzip()‎ قائمتين، إذ تحتوي الأولى على القيم الأولى لكل زوج من أزواج المصفوفة أو المجموعة التكرارية التي استُدعيت معها وتحتوي الثانية على القيم الثانية لكل زوج من تلك الأزواج. البنية العامة يمكن استدعاء الدالة unzip()‎ مع المصفوفات والمجموعات التكرارية: fun <T, R> Array<out Pair<T, R>>.unzip(): Pair<List<T>, List<R>> fun <T, R> Iterable<Pair<T, R>>.unzip(): Pair<List<T>, List<R>> القيمة المعادة تعاد قائمتين؛ تحتوي الأولى على القيم الأولى لكل زوج من أزواج المصفوفة أو المجموعة التكرارية المعطاة وتحتوي الثانية على القيم الثانية لكل ...

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

تُنشئ الدالة groupingBy()‎ موردًا (source) من النوع Grouping من سلسلة المحارف التي استُدعيت معها لاستخدامه لاحقًا مع عمليات التجميع (group-and-fold operations) وذلك باستخدام الدالة keySelector المُمرّرة إليها لاستخلاص مفتاح من كل محرف. البنية العامة inline fun <K> CharSequence.groupingBy( crossinline keySelector: (Char) -> K ): Grouping<Char, K> الإصدار المطلوب: kotlin 1.1. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات keySelector الدالة المستعملة في استخلاص مفتاح من كل محرف. القيم المعادة يُعاد موردٌ من النوع Grouping من المصفوفة أو المجموعة المعطاة لاستخدامه لاحقًا مع عمليات التجميع (group-and-fold). أمثلة ...

الدالة BooleanArray.get()‎ في Kotlin

يجلب التابع get()‎ عنصرًا ذي فهرس محدد من المصفوفة. يمكن الاستعاضة عن هذا التابع باستخدام معامل الفهرسة (index operator) المتمثل بالقوسين [] بالشكل: value = arr[index]‎ البنية العامة operator fun get(index: Int): Boolean وجود الكلمة المفتاحية operator يدل على أنّ هذا التابع مرتبط بمعامل الفهرسة الذي ذكرناه آنفًا. المعاملات index عدد صحيح يمثل فهرس العنصر المراد جلبه. القيم المعادة يعاد العنصر ذو الفهرس index المحدِّد والموجود في المصفوفة المعطاة. أمثلة استعمال التابع get()‎ لجلب العنصر الثاني من مصفوفة قيم منطقية: fun ...

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

تبحث الدالة find()‎ عن أول محرف متطابق مع التعبير النمطي الذي استُدعي معها في سلسلة المحارف الممرَّرة إليها. يمكن البحث في سلسلة المحارف المعطاة بأكملها، أو يمكن بدء عملية البحث عند محرف معين. البنية العامة actual fun find( input: CharSequence, startIndex: Int = 0 ): MatchResult? تبحث الدالة find()‎ عن أول محرف متطابق مع التعبير النمطي الذي استُدعي معها في سلسلة المحارف input الممررة إليها. يمكن البحث في سلسلة المحارف المعطاة بأكملها، أو يمكن بدء ...

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

تتحقَّق الدالة single()‎ من حواية سلسلة المحارف التي استُدعيت معها محرفًا واحدًا فقط أو محرفًا واحدًا محققًا لشرط معيَّن ثمَّ تعيده أو تطلق استثناءً خلاف ذلك. البنية العامة fun CharSequence.single(): Char  inline fun CharSequence.single(     predicate: (Char) -> Boolean ): Char وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات predicate دالة تطبق على كل محرف من محارف السلسلة المعطاة. يمرر إليها محرفٌ وتعيد قيمة منطقية مقابله له. القيم المعادة يعاد المحرف ...

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

تعيد الدالة toString()‎ سلسلة نصية تمثل الكائن الذي استدعيت معه. البنية العامة fun Any?.toString(): String القيم المعادة تعاد سلسلة نصيّة (string) تمثّل الكائن المُحدَّد. أمثلة استخدام الدالةtoString()‎ مع متغير بسيط: fun main(args: Array<String>) { var x = 5 println(x.toString()) // 5 } استخدام الدالة toString()‎ مع المصفوفات: import java.util.* fun main(args: Array<String>) { val nums = arrayOf(1, 2, 3, 4, 5) println(Arrays.toString(nums)) // [1, 2, 3, 4, 5] } انظر أيضًا الدالة hashCode()‎: ...

الدالة Double.toInt()‎ في Kotlin

تحوّل الدالة toInt()‎ العدد العشري المضاعف (double) الذي استُدعي معها إلى عدد صحيح (أي من النوع Int). هذا قد يؤدي إلى تدوير العدد المراد تحويله أو اقتطاع جزءٍ منه. البنية العامة fun toInt(): Int حلت الدالة Number.toInt()‎ مكان هذه الدالة. القيمة المعادة يعاد عدد صحيح (من النوع Int) يحوي العدد العشري المضاعف المراد تحويله. أمثلة استعمال الدالة ()toInt لتحويل عدد عشري مضاعف إلى عدد صحيح: fun main(args: Array<String>) { val x: Double = 52.6 ...

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

تحوّل الدالة toTitleCase()‎ المحرف الذي استٌدعي معها إلى محرف عنواني (titlecase). تتكون المحارف العنوانية عادةً من محرفين ملتصقين، مثل 'Dž' أو 'Nj'، إذ يعاملان وكأنَّهما محرفٌ واحدٌ فقط. البنية العامة inline fun Char.toTitleCase(): Char وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة يعاد الحرف Char المعطى بعد تحويله إلى حرف عنواني. أمثلة تُعرّف الشيفرة الآتية حرفًا باسم x ثم تستدعي الدالة toTitleCase()‎ معه، ثم تطبع الناتج: fun main(args: Array<String>) { ...

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

تنشئ الدالة zip()‎ أزواجًا من محارف سلسلتين لها نفس الفهرس، أو تنشئ قيمًا عبر تمرير عناصر لها نفس الفهرس تجلب من كائنين مختلفين إلى دالة معينة. البنية العامة infix fun CharSequence.zip( other: CharSequence ): List<Pair<Char, Char>> إن استدعيت الدالة zip()‎ مع سلسلة من المحارف ومع تمرير سلسلة أخرى إليها كمعامل، فستشكل أزواجًا من محارف هاتين السلسلتين لها نفس الفهرس وتضعها في قائمة؛ طول القائمة المعادة يساوي طول أٌقصرهما. inline fun <V> CharSequence.zip( other: CharSequence, transform: (a: Char, b: Char) -> V ): List<V> وإن ...

الثابت Char.MIN_SURROGATE في Kotlin

يمثل الثابت Char.MIN_SURROGATE القيمة الدنيا لبديل لعدد بتات الترميز الموحد (Unicode surrogate code unit). البنية العامة const val MIN_SURROGATE: Char انظر أيضًا الثابت Char.MAX_HIGH_SURROGATE: يمثّل القيمة القصوى للبديل الأعلى لوحدة اليونيكود (Unicode high-surrogate code unit). الثابت Char.MAX_LOW_SURROGATE: يمثل القيمة القصوى للبديل الأدنى لوحدة اليونيكود (Unicode low-surrogate code unit). الثابت Char.MAX_SURROGATE‎: يمثِّل القيمة القصوى لبديل وحدة اليونيكود (Unicode surrogate code unit). الثابت Char.MIN_HIGH_SURROGATE: يمثل القيمة الدنيا للبديل الأعلى لوحدة اليونيكود (Unicode high-surrogate code unit). الثابت Char.MIN_LOW_SURROGATE‎: يمثل القيمة الدنيا للبديل الأدنى ...

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

تتحقق الدالة isLetterOrDigit()‎ إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا أو رقمًا. البنية العامة inline fun Char.isLetterOrDigit(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان المحرف (character) المعطى حرفًا أبجديًا أو رقمًا، أو تعاد القيمة false خلاف ذلك. أمثلة استعمال الدالة isLetterOrDigit()‎ للتحقق من كون المحرف المراد استعماله حرفًا أبجديًا أو رقمًا: fun main(args: Array<String>) { val ...

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

تجلب الدالة elementAtOrNull()‎ عنصرًا ذي فهرس معيَّن من المصفوفة أو المجموعة التي استُدعيت معها. إن كان الفهرس المعطى خارج حدود المصفوفة أو المجموعة، فستُعيد الدالة القيمة العدمية null. البنية العامة يمكن استدعاء الدالةelementAtOrNull()‎ مع المصفوفات: inline fun <T> Array<out T>.elementAtOrNull(index: Int): T? inline fun ByteArray.elementAtOrNull(index: Int): Byte? inline fun ShortArray.elementAtOrNull(index: Int): Short? inline fun IntArray.elementAtOrNull(index: Int): Int? inline fun LongArray.elementAtOrNull(index: Int): Long? inline fun FloatArray.elementAtOrNull(index: Int): Float? inline fun DoubleArray.elementAtOrNull(index: Int): Double? inline fun BooleanArray.elementAtOrNull(index: Int): Boolean? inline fun CharArray.elementAtOrNull(index: Int): Char? ومع ...

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

تتحقق الدالة contains()‎ إن كانت سلسلة المحارف التي استُدعيت معها تحوي المحرف أو سلسلة المحارف المُمرّرة إليها. إن مُرِّر تعبير نمطي إلى هذه الدالة، فستتحقق إن كانت سلسلة المحارف التي استُدعيت معها تحوي محرفًا واحدًا على الأقل متطابقًا مع ذلك التعبير النمطي. البنية العامة operator fun CharSequence.contains( other: CharSequence, ignoreCase: Boolean = false ): Boolean operator fun CharSequence.contains( char: Char, ignoreCase: Boolean = false ): Boolean inline operator fun ...

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

توازن الدالة compareTo()‎ بين سلسلتين نصيتين معجميًّا (lexicographically)، مع إمكانية تجاهل حالة الأحرف. البنية العامة fun String.compareTo( other: String, ignoreCase: Boolean = false ): Int وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). المعاملات other السلسلة النصية المراد موازنتها مع السلسلة النصية المعطاة. ignoreCase قيمة منطقية تحدد إن كان يراد تجاهل حالة الحروف أم لا أثناء الموازنة. القيمة الافتراضية هي: false أي أخذ حالة الحروف بالحسبان. القيم المعادة تعاد ...

الدالة ByteArray.set()‎ في Kotlin

تضبط الدالة set()‎ قيمة عنصر ذي فهرس محدد موجود في المصفوفة المستدعاة معه. يمكن الاستعاضة عن هذه الدالة باستخدام آلية الإسناد (assignment) ومعامل الفهرسة (index operator) بالشكل: arr[index]‎ = value البنية العامة operator fun set(index: Int, value: Double) وجود الكلمة المفتاحية operator يدل على أنّ هذه الدالة مرتبط بمعامل الفهرسة المذكور سابقًا. المعاملات index عدد صحيح يمثل فهرس العنصر المراد تغيير قيمته وتعيين القيمة value له. value القيمة المراد تعيينها إلى العنصر ذي الفهرس index. أمثلة استعمال الدالة set()‎ لتغيير قيمة العنصر الثاني والثالث إلى 5.34 و 98.5 على ...

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

تحوّل الدالة toDouble()‎ المحرف الذي استُدعي معها إلى عدد عشري مضاعف (أي من النوع Double). البنية العامة fun toDouble(): Double القيمة المعادة يعاد عدد عشري مضاعف من النوع Double يمثل القيمة العددية للمحرف المعطى. أمثلة استعمال الدالة ()toDouble لتحويل المحرف 'a' إلى عدد عشري مضاعف: fun main(args: Array<String>) { val x = 'a' println(x.toDouble()) // 97.0 } انظر أيضًا الدالة toByte()‎ : تحوّل المحرف الذي استُدعي معها إلى ...

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

تتحقق الدالة containsMatchIn()‎ إن كان بإمكان التعبير النمطي الذي استُدعي معها مطابقة محرفٍ واحدٍ على الأقل من سلسلة المحارف المُمرّرة إليه. البنية العامة actual fun containsMatchIn(input: CharSequence): Boolean المعاملات input سلسلة المحارف التي يراد التحقق من تطابق أحد محارفها -على الأقل- مع التعبير النمطي المعطى. القيمة المعادة تعاد القيمة true المنطقية إن بإمكان التعبير النمطي المعطى مطابقة محرفٍ واحدٍ على الأقل من سلسلة المحارف input، أو تعاد القيمة false خلاف ذلك. أمثلة تنشئ الدالة Regex()‎ في الشيفرة التالية تعبيرًا نمطيًا باسم reg لمطابقة الأعداد، ثم تُستعمَل ...

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

تبدل الدالة replaceFirst()‎ محرفًا جديدًا مكان أول ظهور لمحرف قديم، أو سلسلة نصية جديدة مكان أول ظهور لسلسلة نصية قديمة، أو سلسلة نصية جديدة أو ناتج تنفيذ دالة مكان أول ما يطابق تعبير نمطي معين في سلسلة نصية أو سلسلة من المحارف. البنية العامة actual fun String.replaceFirst( oldChar: Char, newChar: Char, ignoreCase: Boolean = false ): String actual fun String.replaceFirst( oldValue: String, newValue: String, ...

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

تتحقق الدالة isJavaIdentifierPart()‎ إن كان من المحتمل أن يكون المحرف الذي استٌدعي معها جزءًا من مُعرِّف جافا (Java identifier) وليس المحرف الأول من المُعرّف. البنية العامة inline fun Char.isJavaIdentifierPart(): Boolean المنصة المطلوبة: JVM. وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، ارجع إلى صفحة الدوال المباشرة (inline functions)). القيم المعادة تعاد القيمة true إن كان من المحتمل أن يكون المحرف المعطى جزءًا من مُعرِّف جافا (Java identifier) وليس المحرف الأول من المُعرّف، أو القيمة false خلاف ذلك. أمثلة ...

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

ترتِّب الدالة sortedBy()‎ جميع عناصر المصفوفة أو المجموعة التكرارية (Iterable) التي استُدعيت معها تصاعديًّا وفقًا للقيم التي تعيدها الدالة المُمرّرة إليها عند تطبيقها على كل عنصر ثمَّ تضع الناتج في قائمة. البنية العامة inline fun <T, R : Comparable<R>> Array<out T>.sortedBy( crossinline selector: (T) -> R? ): List<T> inline fun <R : Comparable<R>> ByteArray.sortedBy( crossinline selector: (Byte) -> R? ): List<Byte> inline fun <R : Comparable<R>> ShortArray.sortedBy( crossinline selector: (Short) -> R? ): List<Short> inline fun <R ...

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

تجمع الدالة foldIndexed()‎ ناتج تطبيق عملية معينة على قيمة كل عنصر من عناصر المصفوفة أو المجموعة (بدءًا من اليسار إلى اليمين) المستدعاة معها وفهرس ذلك العنصر بشكل تراكمي بالإضافة إلى القيمة الأولية إن أعطيت. البنية العامة يمكن استدعاء الدالة foldIndexed()‎ مع المصفوفات: inline fun <T, R> Array<out T>.foldIndexed( initial: R, operation: (index: Int, acc: R, T) -> R ): R inline fun <R> ByteArray.foldIndexed( initial: R, operation: ...

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

تعيد الدالة dec()‎ المحرف السابق للمحرف الذي استُدعيت معه. البنية العامة operator fun dec(): Char وجود الكلمة المفتاحيّة operator يدل على أنّ هذا التابع مرتبطٌ بمعامل تكرار (iteration operator). القيمة المعادة يعاد المحرف السابق للمحرف المعطى. أمثلة استعمال الدالة ()dec لجلب الحرف الذي يسبق الحرف 'f': fun main(args: Array<String>) { val x = 'f' println(x.dec()) // e } انظر أيضًا الدالة compareTo()‎: توازن بين قيمة العنصر الذي استُدعيت معه والقيمة المُمرّرة إليه ثمَّ تعيد القيمة 0 إن كانا ...

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

ترتِّب الدالة sortedWith()‎ جميع عناصر المصفوفة أو المجموعة التكرارية التي استُدعيت معها وفقًا للمُقارِن المُمرّر إليها ثمَّ تضع الناتج في قائمة. البنية العامة fun <T> Array<out T>.sortedWith( comparator: Comparator<in T> ): List<T> fun ByteArray.sortedWith( comparator: Comparator<in Byte> ): List<Byte> fun ShortArray.sortedWith( comparator: Comparator<in Short> ): List<Short> fun IntArray.sortedWith( comparator: Comparator<in Int> ): List<Int> fun LongArray.sortedWith( comparator: Comparator<in Long> ): List<Long> fun FloatArray.sortedWith( comparator: Comparator<in Float> ): List<Float> fun DoubleArray.sortedWith( ...

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

تحول الدالة toMutableSet()‎ المصفوفة أو المجموعة التكرارية التي استُدعيت معها إلى مجموعة من النوع MutableSet؛ تحافظ المجموعة المُعادة على نفس ترتيب تكرار المصفوفة أو المجموعة التكرارية الأصلية. البنية العامة يمكن استدعاء الدالة toMutableSet()‎ مع المصفوفات والمجموعات التكرارية: fun <T> Array<out T>.toMutableSet(): MutableSet<T> fun ByteArray.toMutableSet(): MutableSet<Byte> fun ShortArray.toMutableSet(): MutableSet<Short> fun IntArray.toMutableSet(): MutableSet<Int> fun LongArray.toMutableSet(): MutableSet<Long> fun FloatArray.toMutableSet(): MutableSet<Float> fun DoubleArray.toMutableSet(): MutableSet<Double> fun BooleanArray.toMutableSet(): MutableSet<Boolean> fun CharArray.toMutableSet(): MutableSet<Char> fun <T> Iterable<T>.toMutableSet(): MutableSet<T> القيمة المعادة تعاد مجموعة من النوع MutableSet تحوي جميع عناصر ...

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

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

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

تضيف الدالة plus()‎ الوسيط المُمرَّر إليها إلى الكائن الذي استدعيت معه. البنية العامة إن استدعيت الدالة plus()‎ مع المصفوفات، فستعيد مصفوفة تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى العنصر المُمرّر إليها: operator fun <T> Array<T>.plus(element: T): Array<T> operator fun ByteArray.plus(element: Byte): ByteArray operator fun ShortArray.plus(element: Short): ShortArray operator fun IntArray.plus(element: Int): IntArray operator fun LongArray.plus(element: Long): LongArray operator fun FloatArray.plus(element: Float): FloatArray operator fun DoubleArray.plus(element: Double): DoubleArray operator fun BooleanArray.plus( element: Boolean ): BooleanArray وإن استدعيت هذه ...

الثابت Byte.MAX_VALUE في Kotlin

يمثِّل الثابت Byte.MAX_VALUE‎ أكبر قيمة يمكن تخزينها في النوع Byte. البنية العامة const val MAX_VALUE: Byte أمثلة استعمال الثابت MAX_VALUE لمعرفة أكبر قيمة يمكن أن يأخذها النوع Byte: fun main(args: Array<String>) { println(Byte.MAX_VALUE) // 127 } انظر أيضًا الثابت MAX_VALUE: يمثِّل أصغر قيمة يمكن تخزينها في النوع Byte. مصادر صفحة الثابت Byte.MAX_VALUE‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.

الدالة 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 ...

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

تعيد الدالة mapIndexed()‎ قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها. البنية العامة يمكن استدعاء الدالة mapIndexed()‎ مع المصفوفات والمجموعات: inline fun <T, R> Array<out T>.mapIndexed( transform: (index: Int, T) -> R ): List<R> inline fun <R> ByteArray.mapIndexed( transform: (index: Int, Byte) -> R ): List<R> inline fun <R> ShortArray.mapIndexed( transform: (index: Int, Short) -> R ): List<R> inline fun <R> IntArray.mapIndexed( ...

الدالة 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()‎: تتحقق ...

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

تحول الدالة toDoubleArray()‎ المصفوفة العامة (أي من النوع Array<Double>‎) أو المجموعة التي استُدعيت معها إلى مصفوفة من النوع DoubleArray. البنية العامة fun Array<out Double>.toDoubleArray(): DoubleArray fun Collection<Double>.toDoubleArray(): DoubleArray القيمة المعادة تعاد مصفوفة من النوع DoubleArray تحوي جميع عناصر المصفوفة العامة (أي من النوع Array<Double>‎) أو المجموعة المعطاة. أمثلة استعمال الدالة ()toDoubleArray لتحويل مصفوفة من النوع Array<Double>‎ إلى النوع DoubleArray: import java.util.Arrays fun main(args: Array<String>) { val array: Array<Double> = arrayOf(4.5, 5.4, 6.0) println(Arrays.toString(array.toDoubleArray())) // [4.5, 5.4, 6.0] ...

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

تتحقق الدالة isEmpty()‎ إن كانت المصفوفة التي استُدعيت معها فارغةً أم لا. البنية العامة inline fun <T> Array<out T>.isEmpty(): Boolean inline fun ByteArray.isEmpty(): Boolean inline fun ShortArray.isEmpty(): Boolean inline fun IntArray.isEmpty(): Boolean inline fun LongArray.isEmpty(): Boolean inline fun FloatArray.isEmpty(): Boolean inline fun DoubleArray.isEmpty(): Boolean inline fun BooleanArray.isEmpty(): Boolean inline fun CharArray.isEmpty(): Boolean وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). القيم المعادة تُعاد القيمة true إن كانت المصفوفة المعطاة فارغةً، أو القيمة false خلاف ...

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

تجلب الدالة minBy()‎ العنصر أو الزوج الأول من المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها والذي أعيدت معه أصغر قيمة عند تطبيق دالة معيَّنة عليه. البنية العامة يمكن استدعاء الدالة minBy()‎ مع المصفوفات و المجموعات والخرائط: inline fun <T, R : Comparable<R>> Array<out T>.maxBy( selector: (T) -> R ): T? inline fun <R : Comparable<R>> ByteArray.maxBy( selector: (Byte) -> R ): Byte? inline fun <R : Comparable<R>> ShortArray.maxBy( selector: (Short) -> R ): ...

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