نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
التهيئة الأولية
التهيئة الأولية
المجالات (Ranges) في لغة Kotlin
استخدام المجالات تُصاغُ تعابير المجالات (range expressions) من خلال دوال rangeTo التي تعتمد على المعامل .. والذي بدوره يتُمَّم بالمعاملين inو !in، إذ من الممكن أن يُعرَّف المجال لأيّ نوعٍ يقبل المقارنة، أما في حالة الأنواع الأساسيّة المتكاملة (integral primitive types) فلها تعريف استخدام مُحسَّن (optimized)، وهذه بعض الأمثلة: if (i in 1..10) { // مكافئ للصياغة
// 1 <= i && i ...
الحقل range
عناصر <input> ذات النوع range تسمح للمستخدم بتحديد قيمة عددية ليست أقل من قيمة معيّنة وليست أكبر من قيمة أخرى، ولا تعتبر القيمة الدقيقة لمدخلات المستخدم مهمةً. يُمثَّل هذا العنصر عادةً باستخدام مزلاج عوضًا عن حقل نصي (الذي يُمثِّل الحقل number)، ولأنَّ هذا الحقل لا يوفِّر تحكمًا دقيقًا فستكون القيمة الدقيقة التي أدخلها المستخدم غير مهمة. إذا لم يكن المتصفح يدعم الحقل range فسيستخدم المتصفح الحقل text الافتراضي. <input type="range" name="range">
الخاصية value تحتوي الخاصية value في الحقل range على سلسلة نصية (DOMString) التي ...
الصنف :in-range
الصنف الزائف :in-range في CSS (أي pseudo-class) يُمثِّل أيّة عناصر <input> التي تكون قيمتها ضمن المجال المسموح المُحدَّد عبر الخاصيتين min و max. input:in-range {
background-color: rgba(0, 255, 0, 0.25);
}
هذا المُحدِّد مفيد لإعطاء المستخدم دلالةً بصريةً على أنَّ القيمة الحالية للحقل ضمن الحدود المسموحة. لاحظ أنَّ هذا الصنف الزائف يُطبَّق على العناصر التي يمكن أن نُحدِّد مجال القيم التي تقبلها. الشكل العام لهذا المحدد: :in-range
أمثلة مثال عن استخدام الصنف الزائف :in-range والصنف الزائف :out-of-range لإعطاء دلالة بصرية على ...
الصنف :out-of-range
الصنف الزائف :out-of-range في CSS (أي pseudo-class) يُمثِّل أيّة عناصر <input> التي لا تكون قيمتها ضمن المجال المسموح المُحدَّد عبر الخاصيتين min و max. input:out-of-range {
background-color: rgba(255, 0, 0, 0.25);
}
هذا المُحدِّد مفيد لإعطاء المستخدم دلالةً بصريةً على أنَّ القيمة الحالية للحقل خارج الحدود المسموحة. لاحظ أنَّ هذا الصنف الزائف يُطبَّق على العناصر التي يمكن أن نُحدِّد مجال القيم التي تقبلها. الشكل العام لهذا المحدد: :out-of-range
أمثلة مثال عن استخدام الصنف الزائف :out-of-range والصنف الزائف :in-range لإعطاء دلالة بصرية ...
الدالة range() في PHP
(PHP 4, PHP 5, PHP 7) تنشئ الدالة range() مصفوفةً تحتوي على مجال من العناصر. الوصف array range ( mixed $start , mixed $end [, number $step = 1 ]
تنشئ هذه الدالة مصفوفةً تحتوي على مجال (range) من العناصر. المعاملات start أول قيمة في المجال أو محرف البداية. end ينتهي المجال عند الوصول إلى القيمة end أو محرف النهاية. step إذا ضُبِطَت قيمةٌ للمعامل step، فستُستخدم كمقدار لزيادة العناصر في المجال. ويجب أن تكون قيمة step موجبة. وإذا لم تُحدد ...
الصنف Range في روبي
يمثل الصنف Range مجالًا (مجموعة) من القيم لها بداية ونهاية. يمكن إنشاء المجالات باستخدام الصياغة الحرفية بالشكل s..e و s...e ، أو باستخدام التابع الباني new. المجالات المُنشأة باستخدام الصياغة .. تشمل عنصري البداية والنهاية. أما تلك المُنشأة باستخدام الصياغة ... فلن تشمل قيمة النهاية. عند استخدامها كمكرر (iterator)، ستعيد المجالات كل قيمها بالتتابع. (-1..-5).to_a #=> []
(-5..-1).to_a #=> [-5, -4, -3, -2, -1]
('a'..'e').to_a #=> ["a", "b", "c", ...
الدالة range() في بايثون
تعيد الدّالة range() كائن مجال يحتوي على أعداد صحيحة من نقطة البداية إلى نقطة النّهاية مع فصلها بمسافة عدديّة. البنية العامة range(stop)
range(start, stop[, step])
المعاملات start نقطة بداية المجال. stop نقطة نهاية المجال. step المسافة العدديّة التي ستكون بين عناصر المجال. القيمة المعادة كائن مجال يُعدّ نوعًا من أنواع التّسلسلات غير القابلة للتّغيير (immutable sequence type). أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة: >>> list(range(3)) # من صفر إلى ثلاثة
[0, 1, 2]
>>> list(range(1, 5)) # من 1 إلى 5
[1, ...
الدالة removeRange() في Kotlin
تحذف الدالة removeRange() مجالًا محددًا من سلسلة المحارف أو السلسلة النصية التي استٌدعيت معها. البنية العامة fun CharSequence.removeRange(
startIndex: Int,
endIndex: Int
): CharSequence
inline fun String.removeRange(
startIndex: Int,
endIndex: Int
): String
fun CharSequence.removeRange(range: IntRange): CharSequence
inline fun String.removeRange(range: IntRange): String
المعاملات startIndex عدد صحيح يشير إلى فهرس المحرف الذي يمثل بداية الجزء المراد حذفه. endIndex عدد صحيح يشير إلى فهرس المحرف الذي يمثل نهاية الجزء المراد حذفه (لا ...
الدالة substring() في Kotlin
تعيد الدالة substring() جزءًا محددًا من السلسلة النصية أو سلسلة المحارف التي استُدعيت معها. البنية العامة inline actual fun String.substring(startIndex: Int): String
inline actual fun String.substring(
startIndex: Int,
endIndex: Int
): String
fun String.substring(range: IntRange): String
fun CharSequence.substring(range: IntRange): String
inline fun CharSequence.substring(
startIndex: Int,
endIndex: Int = length
): String
وجود الكلمة المفتاحية inline يدل على أن هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)). المعاملات startIndex عدد صحيح ...
الدالة replaceRange() في Kotlin
تبدِّل الدالة replaceRange() سلسلة معينة من المحارف مكان جزء محدد في سلسلة من المحارف أو سلسلة نصية. سيُرمَى الاستثناء IndexOutOfBoundsException إن وقع مجال الجزء المحدد المراد استبداله خارج مجال سلسلة المحارف أو السلسلة النصية المعطاة. البنية العامة fun CharSequence.replaceRange(
startIndex: Int,
endIndex: Int,
replacement: CharSequence
): CharSequence
inline fun String.replaceRange(
startIndex: Int,
endIndex: Int,
replacement: CharSequence
): String
fun CharSequence.replaceRange(
...
الدالة subSequence() في Kotlin
تعيد الدالة subSequence() جزءًا محددًا من سلسلة المحارف التي استُدعيت معها. البنية العامة fun CharSequence.subSequence(range: IntRange): CharSequence
inline fun String.subSequence(
start: Int,
end: Int
): CharSequence
هذا الشكل من الدالة قد أُهمِل. المعاملات range مجال من النوع IntRange يحدد الجزء المراد جلبه من سلسلة المحارف المعطاة. start عدد صحيح يشير إلى فهرس العنصر الذي يمثل بداية المجال المراد جلبه. end عدد صحيح يشير إلى فهرس العنصر الذي يمثل نهاية المجال المراد جلبه. القيم المعادة تعاد ...
الخاصية MatchResult.groups في Kotlin
تمثل الخاصية MatchResult.groups مجموعةً (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. حجم تلك المجموعة يساوي groupCount + 1، إذ يكون groupCount عددَ المجموعات (groups) المتطابقة في التعبير النمطي. تلك المجموعات مُفهرسةٌ بدءًا من العدد 1 وحتى groupCount، والمجموعة ذات الفهرس 0 توافق كل ما تطابق. البنية العامة abstract val groups: MatchGroupCollection
القيمة المعادة يعاد كائن من النوع MatchGroupCollection يمثل مجموعة (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. أمثلة في الشيفرة التالية، ننشِئ تعبيرًا نمطيًا باسم regex ...
التهيئة الأولية للصنف MatchGroup في Kotlin
تنشئ الدالة MatchGroup() البانية كائنًا من النوع MatchGroup الذي يمثل النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. البنية العامة MatchGroup(actual value: String, range: IntRange)
منصة التشغيل المطلوبة: JVM. MatchGroup(actual value: String)
منصة التشغيل المطلوبة: JS. المعاملات value قيمة مجموعة النتائج التي تم الحصول عليها. range مجال الفهارس التي تحدّد مكان مجموعة النتائج التي تم الحصول عليها. الخاصية range متوافرة على منصة JVM فقط. القيم المعادة يعاد كائن من النوع MatchGroup. أمثلة في الشيفرة الآتية نعرّف كائنًا من ...
التهيئة الأولية للصنف MatchGroup في Kotlin
تنشئ الدالة MatchGroup() البانية كائنًا من النوع MatchGroup الذي يمثل النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. البنية العامة MatchGroup(actual value: String, range: IntRange)
منصة التشغيل المطلوبة: JVM. MatchGroup(actual value: String)
منصة التشغيل المطلوبة: JS. المعاملات value قيمة مجموعة النتائج التي تم الحصول عليها. range مجال الفهارس التي تحدّد مكان مجموعة النتائج التي تم الحصول عليها. الخاصية range متوافرة على منصة JVM فقط. القيم المعادة يعاد كائن من النوع MatchGroup. أمثلة في الشيفرة الآتية نعرّف كائنًا من ...
المعامل == الخاص بالصنف Range في روبي
يتحقق المعامل == من تساوي مجالين مع بعضهما بعضًا. يكون مجالان متساويين إن كان كل منهما من النوع Range وكان لهما نفس عنصري البداية والنهاية (بمقارنتهما بالمعامل ==)، وكان لهما أيضًا نفس الضبط exclude_end?. البنية العامة rng == obj → true or false
القيمة المعاد تعاد القيمة true إن كان الكائن obj من النوع Range ومساويًا للمجال rng. خلا ذلك، تعاد القيمة false. أمثلة مثال على استخدام التابع ==: (0..2) == (0..2) ...
المعامل === الخاص بالصنف Range في روبي
يعيد المعامل === القيمة true إن كانت قيمةٌ أو كائنٌ ما أحد عناصر المجال (أي تقع ضمنه). المعامل === هو معامل المقارنة الذي تستخدمه عبارات case. البنية العامة rng === obj → true or false
القيمة المعادة تعاد القيمة true إن كان الكائن obj أحد عناصر المجال rng (أي يقعع ضمنه)، أو تعاد القيمة false خلاف ذلك. أمثلة مثال على استخدام المعامل ===: case 79
when 1..50 then print "low\n"
when 51..75 then print "medium\n"
when ...
الخاصية MatchResult.range في Kotlin
تمثل الخاصية MatchResult.range مجال الفهارس الذي يحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. البنية العامة abstract val range: IntRange
القيمة المعادة يعاد مجالٌ من النوع IntRange يمثل الفهارس التي تحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. أمثلة في الشيفرة التالية، ننشِئ تعبيرًا نمطيًا باسم regex باستخدام التابع Regex()، ثم نعرّف سلسلة نصية باسم str، ثم نستخرج منها مجموعات النتائج عبر استدعاء الدالة matchEntire(). نستخدم بعدئذٍ الخاصية MatchResult.range لاستخراج الفهارس التي تحدد مكان مُطابقة التعبير النمطي regex في ...
الخاصية MatchGroup.range في Kotlin
تمثل الخاصية MatchGroup.range مجال الفهارس التي تحدّد مكان مجموعة النتائج التي تم الحصول عليها. البنية العامة val range: IntRange
المنصة المطلوبة: JVM. القيم المعادة يعاد مجال الفهارس التي تحدّد مكان مجموعة النتائج التي تم الحصول عليها. انظر أيضًا الخاصية MatchGroup.value: تمثل قيمة مجموعة النتائج التي تم الحصول عليها. مصادر صفحة الخاصيّة MatchGroup.range في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.
الصنف MatchGroup في Kotlin
يمثل الصنف MatchGroup النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. data actual class MatchGroup
الدوال البانية <init> تنشئ كائنًا من النوع MatchGroup الذي يمثل النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. الخاصيات range تمثل مجال الفهارس التي تحدّد مكان مجموعة النتائج التي تم الحصول عليها. value تمثل قيمة مجموعة النتائج التي تم الحصول عليها. الدوال الموروثة equals يبين إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معه. hashCode يعيد الشيفرة ...
الصنف MatchGroup في Kotlin
يمثل الصنف MatchGroup النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. data actual class MatchGroup
الدوال البانية <init> تنشئ كائنًا من النوع MatchGroup الذي يمثل النتائج التي نحصل عليها من مجموعة واحدة ضمن MatchResult الخاصة بالصنف Regex. الخاصيات range تمثل مجال الفهارس التي تحدّد مكان مجموعة النتائج التي تم الحصول عليها. value تمثل قيمة مجموعة النتائج التي تم الحصول عليها. الدوال الموروثة equals يبين إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معه. hashCode يعيد الشيفرة ...
الدالة 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 ...
الواجهة 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 تمثل هذه الخاصية السلسلة النصية المُدخلة، أو ...
بنية البرمجة في لغة 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 ...
المقارنة بين لغتيّ البرمجة 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 الاستثناءات ...
الدالة downTo() في Kotlin
تنشئ الدالة downTo() مجالًا متدرجًا (progression) يبدًأ من القيمة القصوى التي استُدعيت معها وينحدر تنازليًّا حتى يصل إلى القيمة الممرّرة إليها. ينبغي أن تكون القيمة الممرَّرة أصغر من القيمة التي استُدعيت معها الدالة، وإلّا ستعيد الدالة مجالا متدرجا فارغًا. البنية العامة infix fun Int.downTo(to: Byte): IntProgression
infix fun Long.downTo(to: Byte): LongProgression
infix fun Byte.downTo(to: Byte): IntProgression
infix fun Short.downTo(to: Byte): IntProgression
infix fun Char.downTo(to: Char): CharProgression
infix fun Int.downTo(to: Int): IntProgression
infix fun Long.downTo(to: Int): LongProgression
infix fun Byte.downTo(to: Int): ...
Kotlin/Topics
بُنية لغة Kotlin مشابهةٌ لبنية لغة البرمجة Java بوصفها كائنيّة التوجه (OOP)، وبالتالي فهي تعتمد أساسًا على وجود الأصناف (classes) التي تحتوي بدورها على الخاصّيّات (properties) والدوال (functions)، كما وتدعم Kotlin العلاقات فيما بينها مثل الوراثة (inheritance) من صنفٍ أعلى (superclass) أو التداخل فيما بينها (nesting classes)، وتمتاز بوجود مُحدِّدات الوصول (visibility modifiers) للتحكم بعمليات الوصول للبيانات المُخزَّنة، وكذلك فهي تعتمد في بُنيتها على الحزم (packages) والمكتبات (libraries) التي تحتوي على الدوال المساعدة عند الحاجة إليها، أمّا عن بُنية التعليمات ...
الدالة until() في Kotlin
تنشئ الدالة until() مجالًا (range) تصاعديًا يبدأ القيمة التي استُدعيت معها وحتى القيمة الممرّرة إليها (لا تدخل هذه القيمة ضمن المجال). البنية العامة infix fun Int.until(to: Byte): IntRange
infix fun Long.until(to: Byte): LongRange
infix fun Byte.until(to: Byte): IntRange
infix fun Short.until(to: Byte): IntRange
infix fun Long.until(to: Int): LongRange
infix fun Int.until(to: Short): IntRange
infix fun Long.until(to: Short): LongRange
infix fun Byte.until(to: Short): IntRange
infix fun Short.until(to: Short): IntRange
تنشئ الدالة until() مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند ...
الصنف Byte في Kotlin
يمثل الصنف Byte عددًا صحيحًا ذا إشارة (signed integer) بحجم 8 بت. في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع byte الأساسي. class Byte : Number, Comparable<Byte>
الدوال compareTo توازن الدالة compareTo() بين قيمة العنصر الذي استُدعي معها والقيمة المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. dec تنقص الدالة dec() القيمة ...
الصنف Byte في Kotlin
يمثل الصنف Byte عددًا صحيحًا ذا إشارة (signed integer) بحجم 8 بت. في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع byte الأساسي. class Byte : Number, Comparable<Byte>
الدوال compareTo توازن الدالة compareTo() بين قيمة العنصر الذي استُدعي معها والقيمة المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. dec تنقص الدالة dec() القيمة ...
التحكم بالتدفق (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
// ...
التعابير الاصطلاحية (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) في الصنف (راجع أصناف البيانات ...
الدالة any() في Kotlin
يختلف سلوك الدالة any() بحسب طريقة استدعائها، وسنناقش هذه الحالات تباعًا. حالات استدعاء الدالة any() في حال استدعاء الدالة any() مع مصفوفة (array) أو مجموعة (collection) دون تمرير أيّ معامل (parameter) لها، فستعيد القيمة true إن كانت المصفوفة أو المجموعة تحتوي على عنصر ٍ واحدٍ على الأقل (أي أنها غير فارغة)، وتعيد القيمة false بخلاف ذلك. في حال تمرير دالةٍ ما كوسيطٍ (parameter) في الدالة any() فستعيد القيمة true إن كان هناك واحدٌ على الأقل من عناصر المصفوفة أو المجموعة ...
Document.createRange()
يُنشئ التّابع Document.createRange() كائنًا جديدًا من النّوع Range. البنية العامة range = document.createRange();
range كائنٌ جديدٌ من النّوع Range. أمثلة var range = document.createRange();
range.setStart(startNode, startOffset);
range.setEnd(endNode, endOffset);
ملاحظات بعد إنشاء الكائن Range، ستحتاج إلى ضبط نقاط الحدود الخاصّة به قبل التّمكّن من استعمال مُعظم توابعه. مصادر ومواصفات مواصفة DOM Level 2 Range: DocumentRange.createRange
الصنف Char في Kotlin
يمثل الصنف Char محرفًا بحجم 16 بت مرمزًا بالترميز الموحَّد (Unicode). في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع char الأساسي. class Char : Comparable<Char>
الدوال compareTo توازن الدالة compareTo() بين قيمة المحرف الذي استُدعي معها والقيمة المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة المحرف الذي استُدعي معها) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. dec تعيد الدالة dec() المحرف السابق للمحرف الذي ...
الصنف Char في Kotlin
يمثل الصنف Char محرفًا بحجم 16 بت مرمزًا بالترميز الموحَّد (Unicode). في بيئة التشغيل JVM، القيم غير المعدومة (non-nullable) لهذا النوع تُمثَّل كقيم للنوع char الأساسي. class Char : Comparable<Char>
الدوال compareTo توازن الدالة compareTo() بين قيمة المحرف الذي استُدعي معها والقيمة المُمرّرة إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة المحرف الذي استُدعي معها) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. dec تعيد الدالة dec() المحرف السابق للمحرف الذي ...
for في بايثون
تختلف عبارة for قليلًا في بايثون عن نظيرتها في لغتي C أو Pascal، فبدلًا من تكرار الحلقة استنادًا إلى عملية حسابية (مثل لغة Pascal) أو منح المستخدم القدرة على تعريف عدد مرات التكرار والشرط الذي يؤدي إلى إيقاف عمل الحلقة (كما في لغة C)، فإنّ عبارة for في بايثون تمرّ على عناصر أي تسلسل (قائمة أو سلسلة نصية) معتمدة في ذلك على ترتيب تلك العناصر في ذلك التسلسل. بنية عبارة for >>> # معرفة أطوال السلاسل النصية:
... words = ['cat', ...
for في بايثون
تختلف عبارة for قليلًا في بايثون عن نظيرتها في لغتي C أو Pascal، فبدلًا من تكرار الحلقة استنادًا إلى عملية حسابية (مثل لغة Pascal) أو منح المستخدم القدرة على تعريف عدد مرات التكرار والشرط الذي يؤدي إلى إيقاف عمل الحلقة (كما في لغة C)، فإنّ عبارة for في بايثون تمرّ على عناصر أي تسلسل (قائمة أو سلسلة نصية) معتمدة في ذلك على ترتيب تلك العناصر في ذلك التسلسل. بنية عبارة for >>> # معرفة أطوال السلاسل النصية:
... words = ['cat', ...
الكلمات المفتاحية (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 ...
التغليف الداخلي للحقول (Self Encapsulate Fields)
ملاحظة قبل البدء: تختلف هذه التقنية عن تقنية تغليف الحقول (Encapsulate Field) من حيث أنّها تُستخدَم لتغليف الحقول الخاصّة (أي المُحدَّدة بالكلمة المفتاحيّة private). المشكلة الوصول المباشر إلى الحقول الخاصّة (private fields) داخل الصنف (class). الحل إنشاء تابعي الوصول getter و setter للحقل الخاصّ ومنع الوصول إليه إلا عبرهما. مثال قبل إعادة التصميم يحتوي الصنف Range على الحقلين low و high من النوع الخاص (private) ونلاحظ الوصول إليهما مباشرةً داخل التابع includes في الشيفرة الآتية: في لغة Java: class Range ...
الدالة itertools.combinations() في بايثون
تعيد الدّالة itertools.combinations() تسلسلات فرعيّة (subsequences) تُعدّ تجميعاتٍ ذات طولٍ مُحدّد لعناصر الكائن القابل للتّكرار المُعطى. تُنتَج التّجميعات حسب الترتيب المُعجميّ (lexicographic). ما يعني بأنّ الصّفوف النّاتجة ستكون مُرتّبةً إن كان الكائن القابل للتّكرار المُعطى مُرتّبًا. تُعامَل العناصر على أنّها فريدة حسب موقعها، وليس حسب قيمها. لذا إن كانت عناصر الكائن القابل للتّكرار المُدخَل فريدةً فلن تُكرّر أيّة قيم في كلّ تجميعة. البنية العامة itertools.combinations(iterable, r)
المعاملات iterable الكائن القابل للتّكرار. r طول الصّفوف النّاتجة. القيمة المعادة صفوف بالطول المُعطى ...
التابع Array.fill في روبي
يضبط التابع fill قيم عناصر محدَّدة أو جميع عناصر مصفوفة إلى القيمة الممرَّرة إليه (الأشكال الثلاث الأولى للتابع في قسم «البنية العامة»)، أو القيم التي تعيدها الكتلة البرمجية الممرَّرة إليه (الأشكال الثلاث المتبقية). البنية العامة fill(obj) → ary
fill(obj, start [, length]) → ary
fill(obj, range ) → ary
fill { |index| block } → ary
fill(start [, length] ) { |index| block } → ary
fill(range) { |index| block } → ary
المعاملات obj الكائن المراد أن يحل مكان عناصر محددة (باستعمال المعاملات ...
الدالة itertools.permutations() في بايثون
تعيد الدّالة itertools.permutations() تبادلات مُتتابعةً بطول مُعيّن من عناصر الكائن القابل للتّكرار المُعطى. تُنتَج التّبادلات حسب الترتيب المُعجميّ (lexicographic). ما يعني بأنّ الصّفوف النّاتجة ستكون مُرتّبةً إن كان الكائن القابل للتّكرار المُعطى مُرتّبًا. تُعامَل العناصر على أنّها فريدة حسب موقعها، وليس حسب قيمها. لذا إن كانت عناصر الكائن القابل للتّكرار المُدخَل فريدةً فلن تُكرّر أيّة قيم في كلّ تبادل. البنية العامة itertools.permutations(iterable, r=None)
المعاملات iterable الكائن القابل للتّكرار. r طول التّبادلات التي ستُنتَج. قيمته الافتراضيّة هي القيمة None إن لم ...
معامل الفهرسة [] الخاص بالصنف Array في روبي
يجلب المعامل [] عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من مصفوفة. إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع العنصر بدءًا من نهاية المصفوفة، إذ تمثل القيمة -1 فهرس العنصر الأخير. بالنسبة للوسيطين start و range، يكون فهرس البداية قبل العنصر. إضافةً إلى ذلك، ستُعاد مصفوفة فارغة في حال كان فهرس بداية المجال المحدد يقع عند نهاية المصفوفة. البنية العامة ary[index] → obj or nil
ary[start, length] → new_ary or nil
ary[range] → new_ary ...
المولدات Generators في بايثون
المولّدات هي أداة بسيطة وقوية لإنشاء المكرِّرات. تأخذ المولِّدات صيغة الدوال العادية ولكنّها تستخدم عبارة yield عند إعادة البيانات. في كلّ مرة تستدعى فيها الدالة next() على المولّدات تعود الأخيرة إلى المكان الذي تركته (تتذكر المولّدات جميع القيم والعبارات التي نفّذت أخيرًا). يوضح المثال التالي كيفية إنشاء المولّدات وآلية عملها: def reverse(data):
for index in range(len(data)-1, -1, -1):
yield data[index]
>>>
>>> for char in reverse('golf'):
... print(char)
...
f
l
o
g
يمكن إنجاز كل ما تقوم به المولّدات باستخدام مكرِّرات صنفية (class-based ...
القوائم list في بايثون
تمتلك بايثون عددًا من أنواع البيانات المركبة والتي تستخدم لتجميع القيم الأخرى مع بعضها البعض، والقوائم هي أوسع هذه الأنواع وأكثرها شمولًا، ويمكن كتابتها كقائمة من القيم (العناصر) المفصولة عن بعضها البعض بفواصل (،) ومحاطة بأقواس مربعة. يمكن للقوائم أن تتضمّن أنواعًا مختلفة، ولكن عادة ما تكون العناصر كلها من النوع نفسه. >>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]
فهرسة القوائم واقتطاع أجزاء منها كما هو الحال مع السلاسل النصية (والأنواع الأخرى من التسلسلات ...
Document.caretPositionFromPoint()
تنبيه: هذه تقنيّة تجريبيّة، انظر جدول دعم المتصفّحات قبل استخدام هذا التّابع في شيفرة إنتاجيّة. يعيد التّابع Document.caretPositionFromPoint() كائنًا من النّوع CaretPosition يحتوي على عقدة DOM ومكان علامة الإقحام (caret) وحدود محارف (character offset) العلامة داخل هذه العقدة. البنية العامة var caretPosition = document.caretPositionFromPoint(float x, float y);
المعاملات x الإحداثيّ الأفقيّ لنقطة ما. y الإحداثيّ العمودي لنقطة ما. القيمة المعادة كائن من النّوع CaretPosition. مثال يقوم المثال التّالي بإدخال فراغ سطريً (line break) أينما ضغطت. جزء HTML: <p>Lorem ipsum dolor ...
التابع Range.eql? في روبي
يتحقق التابع eql? من تساوي مجالين مع بعضهما بعضًا. يكون مجالان متساويين إن كان كل منهما من النوع Range وكان لهما نفس عنصري البداية والنهاية (بمقارنتها بواسطة المعامل eql?) ، وكان لهما أيضًا نفس الضبط exclude_end? لقيمة النهاية. البنية العامة eql?(obj) → true or false
المعاملات obj المجال المراد التحقق من تساويه مع المجال المعطى. القيمة المعادة تعاد القيمة true إن كان الكائن obj من النوع Range ومساويًا للمجال rng. خلا ذلك، تعاد القيمة false. أمثلة مثال على استخدام التابع eql?: ...
التابع Array.slice! في روبي
يقتطع التابع slice! عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من المصفوفة التي استدعيت معه. يعيد التابع slice! العناصر المحذوفة، أو nil إن كان index خارج النطاق. البنية العامة slice!(index) → obj or nil
slice!(start, length) → new_ary or nil
slice!(range) → new_ary or nil
المعاملات index عدد صحيح يمثل فهرس العنصر المراد اقتطاعه من المصفوفة المعطاة. start عدد صحيح يمثل فهرس البداية للعناصر المراد اقتطاعها من المصفوفة المعطاة. length عدد صحيح يمثل طول العناصر ...
التابع String.byteslice في روبي
يجلب التابع byteslice محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه. إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. ترميز السلسلة النصية المُعادة يكون من نفس ترميز السلاسل الأصلية. البنية العامة byteslice(integer) → new_str or nil
byteslice(integer, integer) → new_str or nil
byteslice(range) → new_str or nil
المعاملات index عدد صحيح يمثل فهرس المحرف المراد جلبه من السلسلة المعطاة. ...