نتائج البحث

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

المجموعات (Collections) في Laravel

 مقدمة يوفر الصنف Illuminate\Support\Collection غلافًا ملائمًا و مساعدًا على العمل مع مصفوفات البيانات. مثلًا، تفقد الشيفرة الموالية إذ سنستعمل المساعد collect لإنشاء نسخة Collection جديدة من المصفوفة، ننفذ الدالة strtoupper مع كل عنصر، ثم نحذف كل العناصر الفارغة: $collection = collect(['taylor', 'abigail', null])->map(function ($name) { return strtoupper($name); }) ->reject(function ($name) { return empty($name); }); كما ترى، تسمح الدالة بسلسلة توابعها لتنفيذِ تخطيطِ دقيق و التحكم في حجم المصفوفة قيد العمل. بشكل عام، المجموعات غير قابلة للتغيير، أي أن كل ...

Ruby/Array/collect!

اختبار

تغليف المجموعات (Encapsulate Collection)

المشكلة صنف يحتوي على حقل مجموعة وجالب (getter) وضابط (setter) بسيط للعمل مع المجموعة. الحل ضبط القيمة المعادة من الجالب لتكون للقراءة فقط وإنشاء توابع لإضافة/حذف عناصر المجموعة. مثال قبل إعادة التصميم يحتوي الصنف Person على جالب getCourses وضابط setCourses بسيطين للتحكم بالدروس التي سجل بها الشخص: صنف يحتوي على حقل مجموعة وجالب (getter) وضابط (setter) بسيط للعمل مع المجموعة. بعد إعادة التصميم ضبط القيمة المعادة من الجالب setCourses لتصبح للقراءة فقط وإضافة تابعين جديدين أحدهما لإضافة دروس جديدة للشخص ...

التابع collections.__missing__()‎ في بايثون

يستدعى التابع ‎__missing__()‎ من قبل التابع ‎__getitem__()‎ في الصنف dict عند عدم العثور على المفتاح المطلوب. البنية العامة ‎__missing__(key) المعاملات key المفتاح المراد معرفة ما إذا كان مفقودًا أو لا. القيمة المعادة إن كانت الخاصية default_factory تحمل القيمة None، فإنّ التابع يطلق الاستثناء KeyError مع تقديم key كمعامل. إن لم تأخذ الخاصية default_factory القيمة None، فإنّ التابع يُستدعى بدون معاملات وذلك لتقديم قيمة افتراضية للمفتاح key المعطى، وتُدرج هذه القيمة كمفتاح في القاموس وتعاد. إن أدّى استدعاء default_factory إلى إطلاق ...

الخاصية ‎‎indices في Kotlin

تُستخدَم هذه الخاصيّة للحصول على الفهارس الصحيحة (valid indices) للمصفوفة أو المجموعة (collection). البنية العامة توفّر لغة Kotlin الخاصيّة indices للمصفوفات من الأنواع المختلفة كما يلي: val <T> Array<out T>.indices: IntRange val ByteArray.indices: IntRange val ShortArray.indices: IntRange val IntArray.indices: IntRange val LongArray.indices: IntRange val FloatArray.indices: IntRange val DoubleArray.indices: IntRange val BooleanArray.indices: IntRange val CharArray.indices: IntRange وكذلك للمجموعة (collection) val Collection<*>.indices: IntRange القيم المعادة الفهارس الصحيحة (valid indices) للمصفوفة أو المجموعة (collection). أمثلة استخدام الخاصية indices‎ مع المصفوفات: fun main(args: Array<String>) { val array = arrayOf(4,5,7,9) ...

المجموعات (Collections): القائمة (List) والمجموعة (Set) و الخارطة (Map) في لغة Kotlin

تُميِّز لغة Kotlin (على خلاف العديد من لغات البرمجة) بين المجموعة المتغيّرة (mutable) والثابتة (immutable)، وتساهم قدرتُها على التحكُّم الدقيق في الحالات التي يُسمَح فيها بتعديل المجموعات في التقليل من الأخطاء البرمجية (bugs) وتحقيق تصميمٍ أفضل لواجهات API. ومن المهمِّ معرفة الفوارق ما بين العرض (view) الثابت للقراءة فقط (read-only) للمجموعة المتغيّرة والمجموعة الثابتة الفعليّة، إذ من السهل إنشاء كلِّ منهما ولكن نظام الأنواع في Kotlin لا يوضّح الفرق بينهما، ويقع ذلك على عاتق المتعلِّم. يُعدُّ النوع List<out T>‎ في ...

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

تقطع الدالة sliceArray()‎ جزءًا محدَّدًا من المصفوفة التي استُدعيت معها ثمَّ تعيده في مصفوفة أو قائمة بحسب الوسيط الممرر إليها.  البنية العامة إن مرِّر كائن من النوع Collection إلى الدالة sliceArray()‎، فستُعاد مصفوفة تحوي عناصر المصفوفة التي استُدعيت معها والموجودة في الموقع الذي يحدده الوسيط indices: fun <T> Array<T>.sliceArray( indices: Collection<Int> ): Array<T> fun ByteArray.sliceArray(indices: Collection<Int>): ByteArray fun ShortArray.sliceArray( indices: Collection<Int> ): ShortArray fun IntArray.sliceArray(indices: Collection<Int>): IntArray fun LongArray.sliceArray(indices: Collection<Int>): LongArray fun FloatArray.sliceArray( indices: Collection<Int> ): FloatArray ...

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

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

الخاصية MatchResult.destructured‎ في Kotlin

تمثل الخاصية MatchResult.destructured‎ نسخةً من الصنف Destructured توفّر مكونات عملية الإسناد بالتفكيك (destructuring assignment) التي تطبق على قيم المجموعة المُطابقة. تطابق الدالة component1 قيمة المجموعة الأولى، وتطابق الدالة component2 قيمة المجموعة الثانية، وهلم جرًا. البنية العامة open val destructured: Destructured القيمة المعادة تعاد نسخةٌ من الصنف Destructured. أمثلة ينشِئ التابع Regex()‎ في الشيفرة التالية تعبيرًا نمطيًا باسم regex لتفكيك مسارات الملفات إلى ثلاث مُركّبات: المجلد (directory) واسم الملف (fileName) والامتداد (extension)، ثم نعرّف سلسلة نصية باسم fullPath تحتوي مسار أحد الملفات، ثم نستخرج من fullPath مجموعات النتائج عبر استدعاء الدالة ...

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

تُنشِئ الدالة asSequence()‎ نسخةً (instance) من النوع sequence والتي تُغلّف المصفوفة الأصلية وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل حلقة for). البنية العامة تختلف بحسب نوع المصفوفة التي تُستدعَى عبرها: fun <T> Array<out T>.asSequence(): Sequence<T> fun ByteArray.asSequence(): Sequence<Byte> fun ShortArray.asSequence(): Sequence<Short> fun IntArray.asSequence(): Sequence<Int> fun LongArray.asSequence(): Sequence<Long> fun FloatArray.asSequence(): Sequence<Float> fun DoubleArray.asSequence(): Sequence<Double> fun BooleanArray.asSequence(): Sequence<Boolean> fun CharArray.asSequence(): Sequence<Char> ويمكن استدعاء الدالة asSequence()‎عبر مجموعة (collection) وستعيد نسخةً من النوع sequence والتي تُغلّف المجموعة التي استُدعيت عبرها وتعيد عناصرها عندما تُستخدَم ...

الخاصية ‎‎lastIndex في Kotlin

تُستخدَم هذه الخاصيّة للحصول على الفهرس (index) الأخير للمصفوفة أو القائمة (list)، أو القيمة ‎-1 إن كانت المصفوفة أو القائمة فارغةً. البنية العامة توفّر لغة Kotlin الخاصيّة lastIndex للمصفوفات من الأنواع المختلفة كما يلي: val <T> Array<out T>.lastIndex: IntRange val ByteArray.lastIndex: IntRange val ShortArray.lastIndex: IntRange val IntArray.lastIndex: IntRange val LongArray.lastIndex: IntRange val FloatArray.lastIndex: IntRange val DoubleArray.lastIndex: IntRange val BooleanArray.lastIndex: IntRange val CharArray.lastIndex: IntRange وكذلك للقائمة (list): val <T> List<T>.lastIndex: Int القيم المعادة يعاد الفهرس الأخير للمصفوفة أو القائمة، أو القيمة ‎-1 إن كانت المصفوفة أو القائمة فارغة. أمثلة استخدام ...

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

تعيد الدالة orEmpty()‎ المصفوفة أو المجموعة أو القائمة أو الخريطة التي استُدعيت معها إن لم تكن مساويةً للقيمة null، أو تعيد كائنًا فارغًا يقابل الكائن المعطى (مصفوفة فارغة، أو مجموعة فارغة ...إلخ.) خلاف ذلك. البنية العامة يمكن استدعاء الدالة orEmpty()‎ مع المصفوفات والمجموعات والقوائم والخرائط والمجموعات التي من النوع Set: inline fun <reified T> Array<out T>?.orEmpty(): Array<out T> inline fun <T> Collection<T>?.orEmpty(): Collection<T> inline fun <T> List<T>?.orEmpty(): List<T> inline fun <K, V> Map<K, V>?.orEmpty(): Map<K, V> (source) inline fun <K, V> Map<K, V>?.orEmpty(): Map<K, V> ...

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

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

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

الخاصية MatchResult.groups في Kotlin

تمثل الخاصية MatchResult.groups مجموعةً (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. حجم تلك المجموعة يساوي groupCount + 1، إذ يكون groupCount عددَ المجموعات (groups) المتطابقة في التعبير النمطي. تلك المجموعات مُفهرسةٌ بدءًا من العدد 1 وحتى groupCount، والمجموعة ذات الفهرس 0 توافق كل ما تطابق. البنية العامة abstract val groups: MatchGroupCollection القيمة المعادة يعاد كائن من النوع MatchGroupCollection يمثل مجموعة (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. أمثلة في الشيفرة التالية، ننشِئ تعبيرًا نمطيًا باسم regex ...

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

تتحقَّق الدالة isArrayOf()‎ من حواية المصفوفة التي استُدعيت معها عناصرَ من نوعٍ محدَّد. البنية العامة fun <reified T : Any> Array<*>.isArrayOf(): Boolean يدل استخدام الكلمة المفتاحية reified على إمكانية الوصول إلى نوعٍ مُمرَّر كمتحولٍ وسيطٍ (راجع توثيق reified للمزيد من التفاصيل). القيم المعادة تُعاد القيمة المنطقية true إن كانت المصفوفة المعطاة تحوي النوع المعطى أو القيمة false خلاف ذلك. أمثلة مثالٌ على استعمال الدالة  ()isArrayOf: fun main(args: Array<String>) { var numbers = Array(6) { i -> i } println(numbers.isArrayOf<Int>()) // ...

الدالة 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 وإن استدعيت هذه ...

الواجهة ‎‎MatchResult‎ في Kotlin

تمثل الواجهة MatchResult نتائج مطابقة واحدة لتعبير نمطي. interface MatchResult الأنواع Destructured يوفر هذا الصنف مركبات الإسناد بالتفكيك (destructuring assignment) لمجموعة من القيم. الخاصيات destructured‎ تمثل هذه الخاصية نسخةً من الصنف Destructured توفّر مكونات عملية الإسناد بالتفكيك (destructuring assignment) التي تطبق على قيم المجموعة المُطابقة. groupValues تمثل هذه الخاصية قائمة بقيم المجموعة المفهرسة المتطابقة. groups تمثل هذه الخاصية مجموعةً (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. range تمثل هذه الخاصية مجال الفهارس الذي يحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. value تمثل هذه الخاصية السلسلة النصية المُدخلة، أو ...

الواجهة ‎‎MatchResult‎ في Kotlin

تمثل الواجهة MatchResult نتائج مطابقة واحدة لتعبير نمطي. interface MatchResult الأنواع Destructured يوفر هذا الصنف مركبات الإسناد بالتفكيك (destructuring assignment) لمجموعة من القيم. الخاصيات destructured‎ تمثل هذه الخاصية نسخةً من الصنف Destructured توفّر مكونات عملية الإسناد بالتفكيك (destructuring assignment) التي تطبق على قيم المجموعة المُطابقة. groupValues تمثل هذه الخاصية قائمة بقيم المجموعة المفهرسة المتطابقة. groups تمثل هذه الخاصية مجموعةً (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. range تمثل هذه الخاصية مجال الفهارس الذي يحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. value تمثل هذه الخاصية السلسلة النصية المُدخلة، أو ...

الواجهة ‎‎MatchGroupCollection‎ في Kotlin

تمثل الواجهة MatchGroupCollection مجموعةً (collection) من الفئات المرصودة (captured groups) عند إجراء مطابقة واحدة لتعبير نمطي ما. حجم المجموعة يساوي groupCount + 1، إذ يمثل groupCount عدد الفئات (groups) في التعبير النمطي. الفئات مُفهرسة بدءًا من 1 وحتى groupCount، والفئة ذات الفهرس 0 تقابل كل ما تطابق. يمكن أن يساوي بعض عناصر المجموعة القيمة العدمية (null) في حال كانت الفئة المقابلة في التعبير النمطي اختيارية، ولم يُرصَد أي تطابق من قبل تلك الفئة. interface MatchGroupCollection : Collection<MatchGroup?> الدوال get تعيد هذه ...

الواجهة ‎‎MatchGroupCollection‎ في Kotlin

تمثل الواجهة MatchGroupCollection مجموعةً (collection) من الفئات المرصودة (captured groups) عند إجراء مطابقة واحدة لتعبير نمطي ما. حجم المجموعة يساوي groupCount + 1، إذ يمثل groupCount عدد الفئات (groups) في التعبير النمطي. الفئات مُفهرسة بدءًا من 1 وحتى groupCount، والفئة ذات الفهرس 0 تقابل كل ما تطابق. يمكن أن يساوي بعض عناصر المجموعة القيمة العدمية (null) في حال كانت الفئة المقابلة في التعبير النمطي اختيارية، ولم يُرصَد أي تطابق من قبل تلك الفئة. interface MatchGroupCollection : Collection<MatchGroup?> الدوال get تعيد هذه ...

Kotlin/Topics

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

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

تبحث الدالة findAnyOf()‎ عن أول ظهور لأيٍّ من السلاسل النصية المعطاة في سلسلة المحارف التي استُدعيت معها. البنية العامة fun CharSequence.findAnyOf( strings: Collection<String>, startIndex: Int = 0, ignoreCase: Boolean = false ): Pair<Int, String>? المعاملات strings مجموعةٌ من سلاسل نصية يراد البحث عنها ضمن سلسلة المحارف المعطاة. لتجنب الالتباس الناتج عند وجود محارف مشتركة بين السلاسل النصية الموجودة في المعامل strings، فإنّ الدالة findAnyOf()‎ تبدأ من بداية سلسلة المحارف المعطاة ...

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

الخاصية MatchResult.value في Kotlin

تمثل الخاصية MatchResult.value السلسلة النصية المُدخلة، أو جزءًا منها، والمُطابقة للتعبير النمطي. البنية العامة abstract val value: String القيمة المعادة تعاد سلسلة نصية تحوي السلسلة النصية المُدخلة، أو جزءًا منها، والمُطابقة للتعبير النمطي. أمثلة في الشيفرة التالية، ننشِئ تعبيرًا نمطيًا باسم regex باستخدام التابع Regex()‎، ثم نعرّف سلسلة نصية باسم str، ثم نستخرج منها مجموعات النتائج عبر استدعاء الدالة matchEntire()‎. نستخدم بعدئذٍ الخاصية value لاستخراج السلسلة النصية المُطابقة للتعبير النمطي regex و الموجودة في str: fun main(args: Array<String>) { val pattern = Regex("[a-zA-Z]+([0-9]+)[a-zA-Z]+([0-9]+)[a-zA-Z]+") val str = ...

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

تحسب الدالة average()‎ متوسط (average) عناصر المصفوفة أو المجموعة (Collection) المعطاة لها. البنية العامة يمكن استدعاء الدالة average()‎ مع المصفوفات: @JvmName("averageOfByte") fun Array<out Byte>.average(): Double @JvmName("averageOfShort") fun Array<out Short>.average(): Double @JvmName("averageOfInt") fun Array<out Int>.average(): Double @JvmName("averageOfLong") fun Array<out Long>.average(): Double @JvmName("averageOfFloat") fun Array<out Float>.average(): Double @JvmName("averageOfDouble") fun Array<out Double>.average(): Double fun ByteArray.average(): Double fun ShortArray.average(): Double fun IntArray.average(): Double fun LongArray.average(): Double fun FloatArray.average(): Double fun DoubleArray.average(): Double ويمكن استدعاؤها مع المجموعات: @JvmName("averageOfByte") fun Iterable<Byte>.average(): Double @JvmName("averageOfShort") fun Iterable<Short>.average(): Double @JvmName("averageOfInt") fun ...

الدالة MatchResult.next()‎ في Kotlin

تعيد الدالة next()‎ كائنًا من النوع MatchResult يحوي ناتج المطابقة التالية لتعبير نمطي محدد والذي يبدأ عند الفهرس الذي انتهت عنده آخر عملية مطابقة (أي يبدأ عن المحرف الذي يلي آخر محرف تمت مطابقته). البنية العامة abstract fun next(): MatchResult? القيمة المعادة يعاد كائنٌ من النوع MatchResult يحوي نتائج المطابقة التالية لتعبير نمطي محدد التي تبدأ من الفهرس الذي انتهت عنده آخر عملية مطابقة. أمثلة ينشِئ التابع Regex()‎ في الشيفرة التالية تعبيرًا نمطيًا باسم reg لمطابقة التعابير العددية، ثم يستدعي معه الدالة find()‎ للحصول على مطابقات التعبير النمطي reg ...

الدالة findLastAnyOf()‎ في لغة Kotlin

تبحث الدالة findLastAnyOf()‎ عن آخر ظهور لأيٍّ من السلاسل النصية المعطاة في سلسلة المحارف التي استُدعيت معها. البنية العامة fun CharSequence.findLastAnyOf( strings: Collection<String>, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Pair<Int, String>? المعاملات strings مجموعةٌ من سلاسل نصية يراد البحث عنها ضمن سلسلة المحارف المعطاة. لتجنب الالتباس الناتج عند وجود محارف مشتركة بين السلاسل النصية الموجودة في المعامل strings، فإنّ الدالة findLastAnyOf()‎ تبدأ من نهاية سلسلة المحارف المعطاة ...

الواجهة ‎‎MatchNamedGroupCollection‎ في Kotlin

توسع هذه الواجهة الصنف MatchGroupCollection عبر تعريف طريقةٍ لجلب المجموعات المتطابقة (matched groups) عن طريق أسمائها عندما يدعم Regex ذلك. interface MatchNamedGroupCollection : MatchGroupCollection الإصدار المطلوب: kotlin 1.1. الدوال (Functions) get تعيد هذه الدالة نسخةً من الصنف MatchGroup إن كانت المجموعة التي تحمل الاسم المُمرّر إليها متطابقَة. الدوال الموروثة (Inherited Functions) get تعيد هذه الدالة نسخةً من الصنف MatchGroup إن كانت المجموعة التي تحمل الاسم المُمرّر إليها متطابقَة. الخاصيات الإضافية (Extension Properties) indices تُستخدَم هذه الخاصيّة للحصول على الفهارس الصحيحة (valid indices) للمصفوفة أو المجموعة (collection). الدوال ...

الواجهة ‎‎MatchNamedGroupCollection‎ في Kotlin

توسع هذه الواجهة الصنف MatchGroupCollection عبر تعريف طريقةٍ لجلب المجموعات المتطابقة (matched groups) عن طريق أسمائها عندما يدعم Regex ذلك. interface MatchNamedGroupCollection : MatchGroupCollection الإصدار المطلوب: kotlin 1.1. الدوال (Functions) get تعيد هذه الدالة نسخةً من الصنف MatchGroup إن كانت المجموعة التي تحمل الاسم المُمرّر إليها متطابقَة. الدوال الموروثة (Inherited Functions) get تعيد هذه الدالة نسخةً من الصنف MatchGroup إن كانت المجموعة التي تحمل الاسم المُمرّر إليها متطابقَة. الخاصيات الإضافية (Extension Properties) indices تُستخدَم هذه الخاصيّة للحصول على الفهارس الصحيحة (valid indices) للمصفوفة أو المجموعة (collection). الدوال ...

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

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

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

تجمع الدالة sum()‎ جميع قيم عناصر المصفوفة أو المجموعة التي استُدعيت معها ثمَّ تعيد الناتج. البنية العامة يمكن استدعاء الدالة sum()‎ مع المصفوفات: @JvmName("sumOfByte") fun Array<out Byte>.sum(): Int @JvmName("sumOfShort") fun Array<out Short>.sum(): Int @JvmName("sumOfInt") fun Array<out Int>.sum(): Int @JvmName("sumOfLong") fun Array<out Long>.sum(): Long @JvmName("sumOfFloat") fun Array<out Float>.sum(): Float @JvmName("sumOfDouble") fun Array<out Double>.sum(): Double fun ByteArray.sum(): Int fun ShortArray.sum(): Int fun IntArray.sum(): Int fun LongArray.sum(): Long fun FloatArray.sum(): Float fun DoubleArray.sum(): Double ومع المجموعات أيضًا : @JvmName("sumOfByte") fun Iterable<Byte>.sum(): Int @JvmName("sumOfShort") fun Iterable<Short>.sum(): Int @JvmName("sumOfInt") fun Iterable<Int>.sum(): Int ...

الخاصية MatchResult.range في Kotlin

تمثل الخاصية MatchResult.range مجال الفهارس الذي يحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. البنية العامة abstract val range: IntRange القيمة المعادة يعاد مجالٌ من النوع IntRange يمثل الفهارس التي تحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. أمثلة في الشيفرة التالية، ننشِئ تعبيرًا نمطيًا باسم regex باستخدام التابع Regex()‎، ثم نعرّف سلسلة نصية باسم str، ثم نستخرج منها مجموعات النتائج عبر استدعاء الدالة matchEntire()‎. نستخدم بعدئذٍ الخاصية MatchResult.range لاستخراج الفهارس التي تحدد مكان مُطابقة التعبير النمطي regex في ...

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

تضيف الدالة plusElement()‎ العنصر المُمرّر إليها إلى المصفوفة أو المجموعة التي استُدعيت معها. البنية العامة إن استدعيت الدالة plusElement()‎ مع المصفوفات، فستعيد مصفوفة تضم جميع عناصر المصفوفة التي استدعيت معها إضافةً إلى العنصر المُمرّر إليها: inline fun <T> Array<T>.plusElement(element: T): Array<T> وإن استدعيت مع المجموعات، فستعيد قائمة تضم جميع عناصر المجموعة التي استدعيت معها إضافةً إليها العنصر المُمرّر إليها: inline fun <T> Iterable<T>.plusElement(element: T): List<T> inline fun <T> Collection<T>.plusElement(element: T): List<T> أمَّا إن استدعيت مع مجموعة من النوع Set، فستعيد مجموعة من ...

الدالة associate()‎ في لغة Kotlin

تعيد الدالة associate()‎ خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر المصفوفة أو المجموعة (Collection) إلى الدالة المررة إليها. إن كان لزوجين نفس المفتاح (key) فالأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بالمصفوفة أو المجموعة الأصليَّة. البنية العامة تعيد الدالة associate()‎ خريطةً (map) تحوي أزواجًا من "مفتاح/قيمة" ناتجة عن تمرير عناصر مصفوفةٍ إلى الدالة ()transform. inline fun <T, K, V> Array<out T>.associate( transform: (T) -> Pair<K, V> ): Map<K, ...

التابع Enumerable.collect في روبي

يعيد التابع collect مصفوفة جديدة تحوي نتائج تنفيذ الكتلة المعطاة دفعةً واحدةً مع كل عنصر من عناصر المُعدِّد الذي استدعي معه. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة collect { |obj| block } → array collect → an_enumerator القيمة المعادة تعاد مصفوفة تحوي نتائج تنفيذ الكتلة المعطاة دفعةً واحدةً مع كل عنصر من عناصر المُعدِّد المعطى، أو يعاد كائن من النوع Enumerator إن لم تُعطَ أية كتلة. أمثلة مثال على استعمال التابع collect: (1..4).map { |i| ...

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

تُنشِئ الدالة asIterable()‎نسخةً تكراريّةً (iterable instance) تُغلّف (wrap) المصفوفة الأصلية وتعيد عناصرَها عندما تُستخدَم في حلقات التكرار (مثل for). البنية العامة fun <T> Array<out T>.asIterable(): Iterable<T> fun ByteArray.asIterable(): Iterable<Byte> fun ShortArray.asIterable(): Iterable<Short> fun IntArray.asIterable(): Iterable<Int> fun LongArray.asIterable(): Iterable<Long> fun FloatArray.asIterable(): Iterable<Float> fun DoubleArray.asIterable(): Iterable<Double> fun BooleanArray.asIterable(): Iterable<Boolean> fun CharArray.asIterable(): Iterable<Char> ويمكن استدعاء الدالة asIterable()‎عبر مجموعة (collection) لتُعيدها على شكل عنصر تكراريّ (iterable): inline fun <T> Iterable<T>.asIterable(): Iterable<T> كما ويمكن استدعاء الدالة asIterable()‎عبر عنصر map وستعيد نسخةً تكراريةً (iterable instance) تُغلّف عنصر map الأصلي وتعيد مداخله (entries) ...

التابع Array.collect!‎ في روبي

يستدعي التابع !collect كتلة برمجية محددة مع كل عنصر من عناصر مصفوفة ثم يضع القيمة التي أعادتها تلك الكتلة مكان العنصر الذي استدعيت معه. إن لم يمرَّر أي شيء إلى هذا التابع، فسيعيد كائنا من النوع Enumerator. البنية العامة collect! {|item| block } → ary collect! → Enumerator القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تبديل القيمة الجديدة التي تعيدها الكتلة block عند تطبيقها على كل عنصر من عناصر تلك المصفوفة مكان القيمة القديمة لذلك العنصر، أو يعاد كائنٌ من ...

التابع Array.collect في روبي

يستدعي التابع collect كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يعيد مصفوفة جديدة تحوي القيم التي تعيدها تلك الكتلة. إن لم يمرَّر أي شيء إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة collect { |item| block } → new_ary collect → Enumerator القيم المعادة تعاد مصفوفة جديدة تحوي القيم التي تعيدها الكتلة block عند تطبيقها على كل عنصر من عناصر المصفوفة المعطاة، أو يعاد كائنٌ من النوع Enumeratorإن لم تمرَّر الكتلة block. أمثلة أمثلة على ...

الخاصية MatchResult.groupValues في Kotlin

تمثل الخاصية MatchResult.groupValues قائمة بقيم المجموعة المفهرسة المتطابقة. حجم تلك القائمة يساوي groupCount + 1، إذ يكون groupCount عدد المجموعات المتطابقة في التعبير النمطي. تلك المجموعات مُفهرسة بدءًا من العدد 1 وحتى groupCount، والمجموعة ذات الفهرس 0 توافق كل ما تطابق. إن كانت المجموعة في التعبير النمطي اختيارية ولم ترصد هذه المجموعة أي عملية تطابق تُذكر، فستساوي قيمةُ العنصر المقابل في المجموعة groupValues حينئذٍ سلسلةً نصيةً فارغةً. البنية العامة abstract val groupValues: List<String> القيمة المعادة تعاد قائمة تضم جميع قيم ...

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

تستثني الدالة subtract()‎ العناصر المشتركة بين كائنين. تحافظ المجموعة (Set) المُعادة على ترتيب التكرار الخاص بالمجموعة (collection) المعطاة. البنية العامة يمكن استدعاء الدالة subtract()‎ مع المصفوفات والمجموعات التكرارية: infix fun <T> Array<out T>.subtract( other: Iterable<T> ): Set<T> infix fun ByteArray.subtract( other: Iterable<Byte> ): Set<Byte> infix fun ShortArray.subtract( other: Iterable<Short> ): Set<Short> infix fun IntArray.subtract(other: Iterable<Int>): Set<Int> infix fun LongArray.subtract( other: Iterable<Long> ): Set<Long> infix fun FloatArray.subtract( other: Iterable<Float> ): Set<Float> infix ...

المجموعات في رابط الكائنات بالعلاقات Eloquent

مقدمة إنّ جميع مجموعات النتائج المتعددة المعادة من Eloquent هي كائنات من الصنف Illuminate\Database\Eloquent\Collection، بما فيها النتائج المستردة من التابع get أو من العلاقات. يرث صنف مجموعة Eloquent من الصنف الأساسي لمجموعة Laravel، وبالتالي ترث هذه المجموعات الكثير من التوابع التي تساعد بالعمل مع المصفوفات المستخدمة مع نماذج Eloquent. بالطبع، تعمل جميع المجموعات كمكررات، مما يمكّنك من المرور على عناصرها وكأنها مصفوفات عادية: $users = App\User::where('active', 1)->get(); foreach ($users as $user) {    echo $user->name; } لكنّ المجموعات أقوى بكثير من المصفوفات، إذ تزود الكثير ...

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

تعيد الدالة component1()‎ العنصر الأول من المصفوفة أو المفتاح (key) لأول زوج (مفتاح/قيمة) في الخريطة (map) التي استدعيت معها. تسمح هذه الدالة باستخدام التصريحات التفكيكية (destructuring declarations) عند العمل على الخرائط.  البنية العامة يمكن استدعاء الدالة component1()‎ مع المصفوفات والقوائم (list): inline operator fun <T> Array<out T>.component1(): T inline operator fun ByteArray.component1(): Byte inline operator fun ShortArray.component1(): Short inline operator fun IntArray.component1(): Int inline operator fun LongArray.component1(): Long inline operator fun FloatArray.component1(): Float inline operator fun DoubleArray.component1(): Double inline operator fun ...

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

تجمع الدالة sumBy()‎ جميع نواتج تطبيق دالة معيَّنة على كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها. الفرق بين الدالة sumBy()‎ والدالة sumByDouble()‎ هو في نوع القيمة التي تستطيع الدالة الممرَّر إلى كلٍّ منهما إعادتها، إذ تعيد الدالة المُمرَّرة إلى sumBy()‎ عددًّا صحيحًا (integer) بينما يمكن أن تعيد الدالة الممرَّرة إلى sumByDouble()‎ عددًا عشريًّا مضاعفًا (double).  البنية العامة يمكن استدعاء الدالة sumBy()‎ مع المصفوفات والمجموعات: inline fun <T> Array<out T>.sumBy(selector: (T) -> Int): Int inline fun ByteArray.sumBy(selector: (Byte) -> Int): Int inline ...

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

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

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

تجمع الدالة sumByDouble()‎ جميع نواتج تطبيق دالة معيَّنة على كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها. الفرق بين الدالة sumByDouble()‎ والدالة sumBy()‎ هو في نوع القيمة التي تستطيع الدالة الممرَّر إلى كلٍّ منهما إعادتها، إذ تعيد الدالة المُمرَّرة إلى sumBy()‎ عددًّا صحيحًا (integer) بينما يمكن أن تعيد الدالة الممررة إلى sumByDouble()‎ عددًا عشريًّا مضاعفًا (double). البنية العامة يمكن استدعاء الدالة sumByDouble()‎ مع المصفوفات والمجموعات: inline fun <T> Array<out T>.sumByDouble( selector: (T) -> Double ): Double inline fun ByteArray.sumByDouble( ...

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

تُنفّد الدالةُ forEachIndexed()‎ الدالةَ المُمرّرةَ إليها على كل عنصر من عناصر المصفوفة، أو المجموعة، أو الخريطة، التي استُدعيت معها وعلى فهرس ذلك العنصر.  البنية العامة inline fun <T> Array<out T>.forEachIndexed( action: (index: Int, T) -> Unit) inline fun ByteArray.forEachIndexed( action: (index: Int, Byte) -> Unit) inline fun ShortArray.forEachIndexed( action: (index: Int, Short) -> Unit) inline fun IntArray.forEachIndexed( action: (index: Int, Int) -> Unit) inline fun LongArray.forEachIndexed( ...

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

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

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

تبحث الدالة binarySearch()‎ عن عنصر معين في المجموعة أو مجال من المجموعة (Collection) باستخدام خوارزميَّة البحث الثنائي (binary search algorithm) وتعيد فهرس موقعه. ويجب أن تكون المجموعة مرتبَّةً وفق المُقارِن comparator وإلا فستكون النتيجة المعادة غير مُحدّدة. إن احتوت المصفوفة على عناصر متساوية، فلا يمكن التوقع أيها سيُعاد. تُعيد الدالة فهرس العنصر المبحوث عنه إن كان موجودًا في المجال المحدَّد؛ خلاف ذلك، فستعيد القيمة السالبة لنقطة الإدراج (‎-insertion point - 1‎)، وهي الفهرس حيث يجب أن يُدرج العنصر حتى تبقى ...

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

تعيد الدالة associateBy()‎ خريطةً (map) مكونة من الأزواج "مفتاح/قيمة"، إذ يكون المفتاح (key) هو الناتج الذي تعيده الدالة keySelector الممررة إليها وتكون القيمة (value) المقابلة لذلك المفتاح هي إمَّا عناصر المصفوفة أو المجموعة المعطاة أو الناتج الذي تعيده الدالة valueTransform الممررة.  إن كان لعنصرين نفس المفتاح (key) بعد تطبيق الدالة keySelector، فإنَّ الأخير هو الذي سيُضاف إلى الخريطة. تحافظ الخريطة المُعادة على نفس ترتيب التكرار الخاص بالمصفوفة أو المجموعة الأصليَّة. البنية العامة إن استدعيت الدالة associateBy()‎مع مصفوفة، فستعيد خريطةً (map) ...

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

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

تحول الدالة toBooleanArray()‎ المصفوفة العامة (أي من النوع Array<out Boolean>‎) أو المجموعة التي استُدعيت معها إلى مصفوفة من قيم منطقية (أي من النوع BooleanArray) . البنية العامة fun Array<out Boolean>.toBooleanArray(): BooleanArray fun Collection<Boolean>.toBooleanArray(): BooleanArray القيمة المعادة تعاد مصفوفة من القيم المنطقية (من النوع BooleanArray) تحوي جميع عناصر المصفوفة العامة (من النوع Array<out Boolean>‎) أو المجموعة المعطاة. أمثلة استعمال الدالة ()toBooleanArray لتحويل مصفوفة من النوع Array<Boolean>‎ إلى النوع BooleanArray: import java.util.Arrays fun main(args: Array<String>) { val array: Array<Boolean> = arrayOf(true, true, false) ...

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

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

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

تحوِّل الدالة toByteArray()‎ المصفوفة العامة (أي من النوع Array<Byte>‎) أو المجموعة التي استُدعيت معها إلى مصفوفة من النوع ByteArray. البنية العامة fun Array<out Byte>.toByteArray(): ByteArray fun Collection<Byte>.toByteArray(): ByteArray القيمة المعادة تعاد مصفوفة من النوع ByteArray تحوي جميع عناصر المصفوفة العامة (أي من النوع Array<Byte>‎) أو المجموعة المعطاة. أمثلة استعمال الدالة ()toByteArray لتحويل مصفوفة من النوع Array<Byte>‎ إلى النوع ByteArray: import java.util.Arrays fun main(args: Array<String>) { val array: Array<Byte> = arrayOf(1, 5, 6) println(array.toByteArray().javaClass.kotlin.qualifiedName) // kotlin.ByteArray } انظر أيضًا لدالة toBooleanArray()‎: تحول المصفوفة العامة (أي من النوع Array<out Boolean>‎) أو المجموعة  التي استُدعيت معها إلى مصفوفة من القيم ...

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

تحول الدالة toCharArray()‎ المصفوفة العامة (أي التي من النوع Array<Char>‎) أو المجموعة التي استُدعيت معها إلى مصفوفة من النوع CharArray. البنية العامة fun Array<out Char>.toCharArray(): CharArray fun Collection<Char>.toCharArray(): CharArray القيمة المعادة تعاد مصفوفة من النوع CharArray تحوي جميع عناصر المصفوفة العامة (أي التي من النوع Array<Char>‎) أو المجموعة المعطاة. أمثلة استعمال الدالة ()toCharArray لتحويل مصفوفة من النوع Array<Char>‎ إلى مصفوفة من النوع CharArray: import java.util.Arrays fun main(args: Array<String>) { val array: Array<Char> = arrayOf('a', 'b', 'c') println(array.toCharArray().javaClass.kotlin.qualifiedName) // kotlin.CharArray } انظر أيضًا الدالة toBooleanArray()‎: تحول المصفوفة العامة (أي من النوع Array<out Boolean>‎) أو المجموعة  التي استُدعيت معها ...

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

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

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

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

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

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

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

تتحقق الدالة contains()‎ إن كانت المصفوفة أو المجموعة التي استُدعيت معها تحتوي على العنصر الممرّر إليها، أو إن كانت الخريطة التي استدعيت معها تحتوي على ذلك العنصر كمفتاح (key). يمكن استدعاء contains()‎ مع خريطة بالشكل x in map للتحقق من أنّ العنصر x موجود ضمنها. البنية العامة يمكن استدعاء الدالة contains()‎ مع مصفوفات: operator fun <T> Array<out T>.contains(element: T): Boolean operator fun ByteArray.contains(element: Byte): Boolean operator fun ShortArray.contains(element: Short): Boolean operator fun IntArray.contains(element: Int): Boolean operator fun LongArray.contains(element: Long): Boolean ...

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

تحول الدالة toMutableList()‎ المصفوف أو المجموعة التي استُدعيت معها إلى قائمة متغيرة. البنية العامة يمكن استدعاء الدالة toMutableList()‎ مع المصفوفات: fun <T> Array<out T>.toMutableList(): MutableList<T> fun ByteArray.toMutableList(): MutableList<Byte> fun ShortArray.toMutableList(): MutableList<Short> fun IntArray.toMutableList(): MutableList<Int> fun LongArray.toMutableList(): MutableList<Long> fun FloatArray.toMutableList(): MutableList<Float> fun DoubleArray.toMutableList(): MutableList<Double> fun BooleanArray.toMutableList(): MutableList<Boolean> fun CharArray.toMutableList(): MutableList<Char> ومع المجموعات أيضًا: fun <T> Iterable<T>.toMutableList(): MutableList<T> fun <T> Collection<T>.toMutableList(): MutableList<T> القيمة المعادة تُعاد قائمة متغيرة تحوي جميع عناصر المصفوفة أو المجموعة المعطاة. أمثلة استعمال الدالة ()toMutableList لتحويل مصفوفة إلى قائمة متغيرة: fun main(args: ...

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

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

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

تجلب الدالة indexOfAny()‎ فهرس أول ظهور لأيٍّ منه المحارف أو السلاسل النصية المعطاة من سلسلة المحارف التي استُدعيت معها. البنية العامة fun CharSequence.indexOfAny( chars: CharArray, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Int fun CharSequence.indexOfAny( strings: Collection<String>, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Int المعاملات chars مصفوفة من المحارف التي يراد البحث عنها ضمن سلسلة المحارف المعطاة. strings مجموعةٌ من ...

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

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

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

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

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

يختلف سلوك الدالة any()‎ بحسب طريقة استدعائها، وسنناقش هذه الحالات تباعًا. حالات استدعاء الدالة any()‎ في حال استدعاء الدالة any()‎ مع مصفوفة (array) أو مجموعة (collection) دون تمرير أيّ معامل (parameter) لها، فستعيد القيمة true إن كانت المصفوفة أو المجموعة تحتوي على عنصر ٍ واحدٍ على الأقل (أي أنها غير فارغة)، وتعيد القيمة false بخلاف ذلك. في حال تمرير دالةٍ ما كوسيطٍ (parameter) في الدالة any()‎ فستعيد القيمة true إن كان هناك واحدٌ على الأقل من عناصر المصفوفة أو المجموعة ...

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

تجلب الدالة lastIndexOfAny()‎ فهرس آخر ظهور لأيٍّ منه المحارف أو السلاسل النصية المعطاة من سلسلة المحارف التي استُدعيت معها. البنية العامة fun CharSequence.lastIndexOfAny( chars: CharArray, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Int fun CharSequence.lastIndexOfAny( strings: Collection<String>, startIndex: Int = lastIndex, ignoreCase: Boolean = false ): Int المعاملات chars مصفوفة من المحارف التي يراد البحث عنها ضمن سلسلة المحارف المعطاة. strings مجموعةٌ من سلاسل نصية ...

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

تتحقَّق الدالة none()‎ إن كانت المصفوفة أو المجموعة أو الخريطة التي استدعيت معها فارغةً، أو إن لم يكن هنالك أي عنصر من تلك العناصر محقِّقًا لشرط معين. البنية العامة يمكن استدعاء الدالة none()‎ مع المصفوفات والمجموعات والخرائط دون تمرير أية معامل إليها: fun <T> Array<out T>.none(): Boolean fun ByteArray.none(): Boolean fun ShortArray.none(): Boolean fun IntArray.none(): Boolean fun LongArray.none(): Boolean fun FloatArray.none(): Boolean fun DoubleArray.none(): Boolean fun BooleanArray.none(): Boolean fun CharArray.none(): Boolean fun <T> Iterable<T>.none(): Boolean (source) fun <K, V> Map<out K, V>.none(): ...

الوحدة collections.abc‎ في بايثون

تقدّم هذه الوحدة مجموعة من الأصناف الأساسية المجرّدة abstract base calsses (يرمز لها ABC اختصارًا) والتي يمكن استخدامها للتأكد ممّا إذا كان صنف معيّن يقدّم واجهة interface معينة، كأن يكون الصنف قابلًا للتقطيع hashable أو أنّه صنف ربط mapping. ملاحظة: قبل الإصدار 3.3 من اللغة كانت هذه الوحدة جزءًا من وحدة collections. الأصناف الأساسية المجرّدة في الوحدة collections تقدّم وحدة collections الأصناف الأساسية المجرّدة التالية: الصنف الأساسي المجرد يرث من التوابع المجرّدة توابع mixin Container   __contains__   Hashable   ...

التابع Enumerable.map في روبي

يعيد التابع map مصفوفة جديدة تحوي النتائج المقابلة لكل عنصر من عناصر الكائن القابل للتعداد المعادة من الكتلة المعطاة بعد تمريره إليها. إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة map { |obj| block } → array map → an_enumerator القيمة المعادة تعاد مصفوفة جديدة تحوي النتائج المقابلة لكل عنصر من عناصر الكائن القابل للتعداد المعادة من الكتلة block بعد تمريره إليها. إن لم تُعطَ أية كتلة، فسيعاد كائن من النوع Enumerator. أمثلة مثال على استعمال التابع map: ...

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

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

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

الموارد في رابط الكائنات بالعلاقات Eloquent

مقدمة عند بناء واجهات برمجة التطبيقات (المدعوة اختصاراً APIs)، قد تحتاج إلى طبقة تحويل تقع بين نماذج Eloquent وردود JSON المعادة فعليًّا إلى مستخدمي تطبيقك. تمكّنك الموارد في Laravel من تحويل النماذج بشكل فعال وسهل، بما يتضمن مجموعات النماذج. توليد الموارد لتوليد صنف مورد، يمكنك استخدام أمر artisan make:resource. افتراضيًّا، تقع الموارد في المجلد app/Http/Resources الخاص بتطبيقك. ترث الموارد من الصنف الأساسي Illuminate\Http\Resources\Json\JsonResource: php artisan make:resource User موارد المجموعات إضافةً إلى توليد موارد لتحويل النماذج الأحادية، يمكنك توليد موارد مسؤولة ...

Array.prototype.indexOf()‎

الدالة Array.prototype.indexOf()‎ تعيد أوّل فهرس للعنصر الموجود في الدالة والذي يساوي القيمة المُحدَّدة، أو القيمة -1 إن لم يُعثَر على مُطابَقة. var a = [2, 9, 9]; a.indexOf(2); // 0 a.indexOf(7); // -1 if (a.indexOf(7) === -1) { // العنصر غير موجود في المصفوفة } البنية العامة arr.indexOf(searchElement[, fromIndex]) searchElement العنصر الذي نريد البحث عنه. fromIndex الفهرس الذي نريد البدء منه في البحث عن searchElement، والقيم السالبة ستؤدي إلى بدء البحث من الفهرس array.length + fromIndex تصاعديًا. القيمة الافتراضية هي 0. ...

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

تتحقق الدالة all()‎ إن كانت كافّة عناصر المصفوفة أو المجموعة (collection) التي استُدعيت عبرها تطابق شرطًا منطقيًّا محدَّدًا. البنية العامة يمكن استدعاء الدالة all()‎ للمصفوفات من الأنواع المختلفة كما يلي: inline fun <T> Array<out T>.all(predicate: (T) -> Boolean): Boolean inline fun ByteArray.all(predicate: (Byte) -> Boolean): Boolean inline fun ShortArray.all(predicate: (Short) -> Boolean): Boolean inline fun IntArray.all(predicate: (Int) -> Boolean): Boolean inline fun LongArray.all(predicate: (Long) -> Boolean): Boolean inline fun FloatArray.all(predicate: (Float) -> Boolean): Boolean inline fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean ...

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

تشبه الدالة associateTo()‎ الدالة associate()‎ تمامًا باستثناء أنها تضيف الناتج الذي تعيده إلى خريطة موجودة مسبقًا.   البنية العامة inline fun <T, K, V, M : MutableMap<in K, in V>> Array<out T>.associateTo( destination: M, transform: (T) -> Pair<K, V> ): M inline fun <K, V, M : MutableMap<in K, in V>> ByteArray.associateTo( destination: M, transform: (Byte) -> Pair<K, V> ): M inline fun <K, V, M : MutableMap<in K, in ...

التابع Array.map في روبي

يستدعي التابع map كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يضع الناتج الذي تعيده هذه الكتلة لكل عنصر في مصفوفة جديدة وتعيدها. إن لم تمرَّر أية كتلة إلى التابع map، فسيعيد كائنًا من النوع Enumerator. البنية العامة map { |item| block } → new_ary map → Enumerator القيم المعادة تعاد مصفوفة جديدة تحوي ناتج تطبيق الكتلة block على كل عنصر من عناصر المصفوفة المعطاة، أو يعاد كائنٌ من النوع Enumerator إن لم تعطَ الكتلة block. أمثلة أمثلة ...

التابع Symbol.to_proc‎ في روبي

يعيد التابع to_proc كائنًا من النوع Proc، والذي يستجيب للتابع المعطى من قبل الرمز. البنية العامة to_proc‎ القيمة المعادة يعاد كائنٌ من النوع Proc. أمثلة مثال على استخدام التابع to_proc‎: (1..3).collect(&:to_s) #=> ["1", "2", "3"]‎ انظر أيضًا التابع to_s: يعيد الاسم أو السلسلة نصية التي تمثل الرمز مصادر قسم التابع to_proc‎ في الصنف Symbol‎ في توثيق روبي الرسمي.

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

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

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

التابع deque.reverse()‎ في بايثون

يعكس التابع ترتيب عناصر الكائن deque في نفس المكان. البنية العامة d.reverse() القيمة المعادة يعيد التابع القيمة None. ملاحظة: هذا التابع جديد في الإصدار 3.2. أمثلة يبين المثال التالي آلية عمل التابع. >>> from collections import deque >>> d = deque('abcdefg') >>> d deque(['a', 'b', 'c', 'd', 'e', 'f', 'g']) >>> d.reverse() >>> d deque(['g', 'f', 'e', 'd', 'c', 'b', 'a']) مصادر قسم deque Objects في صفحة Container Datatypes في توثيق بايثون الرسمي.

التابع deque.append()‎ في بايثون

يضيف التابع العنصر المعطى إلى الجانب الأيمن من كائن deque. البنية العامة d.‎append(x) المعاملات x العنصر المراد إضافته إلى الجانب الأيمن من كائن deque. أمثلة يبين المثال التالي آلية عمل التابع: >>> from collections import deque >>> d = deque('ghi') >>> d.append('j') >>> d deque(['g', 'h', 'i', 'j']) انظر أيضًا التابع appendleft()‎:  :يضيف التابع العنصر المعطى إلى الجانب الأيسر من كائن deque. مصادر قسم deque Objects في صفحة Container Datatypes في توثيق بايثون الرسمي.

التابع deque.appendleft()‎ في بايثون

يضيف التابع العنصر المعطى إلى الجانب الأيسر من كائن deque. البنية العامة d.‎appendleft(x) المعاملات x العنصر المراد إضافته إلى الجانب الأيسر من كائن deque. أمثلة يبين المثال التالي آلية عمل التابع: >>> from collections import deque >>> d = deque('ghi') >>> d.appendleft('f') >>> d deque(['f', 'g', 'h', 'i']) انظر أيضًا التابع append()‎:  :يضيف التابع العنصر المعطى إلى الجانب الأيمن من كائن deque. مصادر قسم deque Objects في صفحة Container Datatypes في توثيق بايثون الرسمي.

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

التابع deque.count()‎ في بايثون

يحسب التابع عدد عناصر deque المساوية للقيمة المعطاة. البنية العامة d.‎count() المعاملات x العنصر المراد حساب عدد مرات تكراره في كائن deque. القيمة المعادة يحسب التابع عدد عناصر deque المساوية للمعامل x. ملاحظة: هذا التابع جديد في الإصدار 3.2. أمثلة يبين المثال التالي آلية عمل التابع. >>> from collections import deque >>> d = deque('aaabcdddd') >>> d deque(['a', 'a', 'a', 'b', 'c', 'd', 'd', 'd', 'd']) >>> d.count('a') 3 >>> d.count('d') 4 مصادر قسم deque Objects في صفحة Container Datatypes في توثيق بايثون الرسمي.

التابع deque.clear()‎ في بايثون

حذف جميع العناصر من كائن deque ويصبح طول الكائن 0. البنية العامة d.‎clear() أمثلة يبين المثال التالي آلية عمل التابع: >>> from collections import deque >>> d = deque('abcdef') >>> d deque(['a', 'b', 'c', 'd', 'e', 'f']) >>> d.clear() >>> d deque([]) >>> len(d) 0 انظر أيضًا التابع pop()‎:  :يحذف التابع ويعيد عنصرًا واحدًا من الجانب الأيمن في الكائن deque. التابع popleft()‎:  :يحذف التابع ويعيد عنصرًا واحدًا من الجانب الأيسر في الكائن deque. التابع remove()‎:  :يحذف التابع أوّل عنصر يحمل القيمة المعطاة. مصادر قسم deque Objects في صفحة ...

الروتينات المساعدة (Coroutines) في لغة Kotlin

ملاحظة: ما تزال الروتينات المساعدة تجريبيةً في الإصدار Kotlin 1.1. الروتينات المساعدة (Coroutines) تُنشِئ بعض الواجهات API عملياتٍ طويلة التنفيذ (مثل عمليات الدخل والخرج للشبكة أو الدخل والخرج للملفات أو الأعمال المُعقَّدة في الوحدتين CPU أو GPU)، وهذا سيجبر المُستدعي على تجميد تنفيذه (block) إلى حين إتمامها، ولذا توفِّر الروتينات المساعدة طريقةً لمنع تجميد الخيوط (threads) وإجراء عمليةٍ أقلَّ كلفةً (بالنسبة لزمن المعالجة) وأكثر قابليةً للتحكم، ألا وهي الإيقاف المؤقت (suspension) للروتينات المساعدة. تبسّط الروتينات المساعدة البرمجة غير المتزامنة (asynchronous ...

التابع Array.compact في روبي

يعيد التابع compact نسخةً جديدة من المصفوفة التي استُدعي معها مع حذف كل العناصر التي تساوي nil منها. البنية العامة compact → new_ary القيم المعادة تعاد مصفوفة جديدة تحوي جميع عناصر المصفوفة المعطاة باستثناء العناصر ذات القيمة nil. أمثلة مثالٌ على استخدام التابع compact: [ "a", nil, "b", nil, "c", nil ].compact #=> [ "a", "b", "c" ] انظر أيضًا التابع compact! ...

التابع deque.pop()‎ في بايثون

يحذف التابع ويعيد عنصرًا واحدًا من الجانب الأيمن في الكائن deque. البنية العامة d.pop() القيمة المعادة يعيد التابع العنصر المحذوف من كائن deque. وفي حال عدم وجود أي عنصر، يطلق التابع الخطأ IndexError. أمثلة يبين المثال التالي آلية عمل التابع. >>> from collections import deque >>> d = deque(['a', 'b', 'c', 'd', 'e', 'f']) >>> d.pop() 'f' >>> d deque(['a', 'b', 'c', 'd', 'e']) >>> d.pop() 'e' >>> d deque(['a', 'b', 'c', 'd']) انظر أيضًا التابع popleft()‎:  :يحذف التابع ويعيد عنصرًا واحدًا من الجانب الأيسر في الكائن deque. التابع ...

التابع deque.popleft()‎ في بايثون

يحذف التابع ويعيد عنصرًا واحدًا من الجانب الأيسر في الكائن deque. البنية العامة d.popleft() القيمة المعادة يعيد التابع العنصر المحذوف من كائن deque. وفي حال عدم وجود أي عنصر، يطلق التابع الخطأ IndexError. أمثلة يبين المثال التالي آلية عمل التابع. >>> from collections import deque >>> d = deque(['a', 'b', 'c', 'd', 'e', 'f']) >>> d.popleft() 'a' >>> d deque(['b', 'c', 'd', 'e', 'f']) >>> d.popleft() 'b' >>> d deque(['c', 'd', 'e', 'f']) انظر أيضًا التابع pop()‎:  :يحذف التابع ويعيد عنصرًا واحدًا من الجانب الأيمن في الكائن deque. التابع ...

التابع deque.extend()‎ في بايثون

يمدّد الجانب الأيمن من كائن deque بإضافة العناصر المعطاة. البنية العامة d.extend(iterable) المعاملات iterable كائن مكرِّر تضاف عناصره إلى كائن deque. القيمة المعادة يعيد التابع كائن deque جديد يمثّل نسخة سطحية عن كائن dequeالأصلي. أمثلة يبين المثال التالي آلية عمل التابع. >>> from collections import deque >>> d = deque('ghi') >>> d.extend('jkl') >>> d deque(['g', 'h', 'i', 'j', 'k', 'l']) انظر أيضًا التابع extendleft()‎:  :يمدّد الجانب الأيسر من كائن deque بإضافة العناصر المعطاة. التابع append()‎:  :يضيف التابع العنصر المعطى إلى الجانب الأيمن من كائن ...

التابع deque.extendleft()‎ في بايثون

يمدّد الجانب الأيسر من كائن deque بإضافة العناصر المعطاة. البنية العامة d.extendleft(iterable) المعاملات iterable كائن مكرِّر تضاف عناصره إلى كائن deque. القيمة المعادة يعيد التابع كائن deque جديد يمثّل نسخة سطحية عن كائن dequeالأصلي. أمثلة يبين المثال التالي آلية عمل التابع. >>> from collections import deque >>> d = deque('ghi') >>> d.extendleft('def') >>> d deque(['f', 'e', 'd', 'g', 'h', 'i']) انظر أيضًا التابع extend()‎:  :يمدّد الجانب الأيمن من كائن deque بإضافة العناصر المعطاة. التابع append()‎:  :يضيف التابع العنصر المعطى إلى الجانب الأيمن من كائن ...

Document.forms

تُعيد الخاصّية forms مجموعة من النّوع HTMLCollection تحتوي على جميع عناصِر <form> في المُستند. ملاحظة: يُمكنك كذلك استعمال الخاصيّة HTMLFormElement.elements للحصول على قائمةٍ بعناصِر نماذج الإدخال بشكلٍ مُشابه. البنية العامة collection = document.forms; القيمة كائنٌ من النّوع HTMLCollection يُمثّل قائمةً بجميع النّماذج في المُستند. كلّ عنصر من المجموعة يُعدّ من النّوع HTMLFormElement ويُمثّل عنصر <form> وحيد. إن لم يوجد أي نموذج في المُستند، فالمجموعة المُعادة ستكون فارغة بطولٍ يُساوي صفرًا. أمثلة الحصول على معلومات نموذج مُعيّن: <!DOCTYPE html> <html lang="en"> ...

التابع deque.remove()‎ في بايثون

يحذف التابع أوّل عنصر يحمل القيمة المعطاة من كائن deque. البنية العامة d.remove(value) المعاملات value القيمة المراد حذفها من كائن deque. القيمة المعادة يحذف التابع أوّل عنصر يحمل القيمة المعطاة. في حال عدم العثور على العنصر المطلوب، يطلق التابع الخطأ ValueError. أمثلة يبين المثال التالي آلية عمل التابع. >>> from collections import deque >>> d = deque('abcdefg') >>> d deque(['a', 'b', 'c', 'd', 'e', 'f', 'g']) >>> d.remove('d') >>> d deque(['a', 'b', 'c', 'e', 'f', 'g']) انظر أيضًا التابع clear()‎: يحذف جميع العناصر من كائن deque. ...

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

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

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

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