نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
التهيئة الأولية
التهيئة الأولية
المجالات (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 عدد صحيح يمثل فهرس المحرف المراد جلبه من السلسلة المعطاة. ...
التابع Array.slice في روبي
يجلب التابع slice عنصرًا ذي فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من مصفوفة. إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع العنصر بدءًا من نهاية المصفوفة، إذ تمثل القيمة -1 فهرس العنصر الأخير. ستُعاد مصفوفة فارغة في حال كان فهرس بداية المجال المحدد يقع عند نهاية المصفوفة. البنية العامة slice(index) → obj or nil
slice(start, length) → new_ary or nil
slice(range) → new_ary or nil
المعاملات index عدد صحيح يمثل فهرس العنصر المراد اقتطاعه من المصفوفة المعطاة. ...
الدالة zip() في بايثون
تعيد الدّالة zip() مُكرّرًا يُركّب عناصر كلّ من الكائنات القابلة للتّكرار المُعطاة. البنية العامة zip(*iterables)
المعاملات iterables مُعامل اختياريّ يُمثّل الكائنات القابلة للتّكرار المرغوب تركيبها. القيمة المعادة مُكرّر يحتوي على صفوف تكون عناصرها ذات نفس الفهرس (index) في كلّ عنصر من عناصر الكائنات القابلة للتّكرار. إذ يحتوي مثلا أول صفّ على جميع العناصر التي تكون أول العناصر في الكائنات القابلة للتّكرار المُعطاة (انظر الأمثلة أدناه). يتوقّف المُكرّر عندما تنتهي عناصر أصغر كائن قابل للتّكرار. عند استدعائها بكائن واحد قابل للتّكرار ...
التابع Range.step في روبي
يكرر التابع step تنفيذ الكتلة المعطاة ويمرر إليها n عنصرًا من عناصر المجال بالتتابع. إن كان عنصرا البداية والنهاية عددين، فسيضاف n عند كل تكرار. وإلا، فإن التابع step سيستدعي succ للتكرار على عناصر المجال. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلاً من ذلك. البنية العامة step(n=1) {| obj | block } → rng
step(n=1)→ an_enumerator
المعاملات n عدد صحيح يمثِّل الخطوة. الخطوة الافتراضية هي: 1. القيمة المعادة يعاد مجالٌ، أو كائن من الصنف Enumerator في حال ...
المعامل [] الخاص بالصنف String في روبي
يبدِّل المعامل [] عند استدعائه بالشكل []= سلسلةً نصيةً محدَّدةً مكان جزءٍ محدَّد أو كامل محتوى سلسلة نصية أخرى. البنية العامة str[integer] = new_str
str[integer, integer] = new_str
str[range] = aString
str[regexp] = new_str
str[regexp, integer] = new_str
str[regexp, name] = new_str
str[other_str] = new_str
يحدَّد الجزء المراد تبديله من السلسلة النصية str بالطريقة نفسها المذكورة في المعامل []. إن كان طول السلسلة النصية المعطاة لا يطابق طول السلسلة النصية (أو الجزء المحدّد) المراد تبديله، فستُعدَّل السلسلة النصية المعطاة تلك وفقًا لذلك. إن كان التعبير النمطي أو ...
معامل التعيين [] الخاص بالصنف Array في روبي
يعيّن المعامل [] قيمة عنصر ذي فهرس محدد، أو قيم عدة عناصر تبدأ عند عنصر محدد وتمتد عددًا محددًا من العناصر، أو قيم عدة عناصر موجودة عند مجال محدد في مصفوفة. إن كانت الفهارس تشير إلى عناصر تقع خارج نطاق المصفوفة المعطاة، فستُوسَّع المصفوفة تلقائيًا. تُدرج العناصر في المصفوفة عند الفهرس start إن كانت قيمة الوسيط length تساوي 0. إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع العنصر بدءًا من نهاية المصفوفة، إذ تمثِّل القيمة -1 فهرس العنصر الأخير. بالنسبة للوسيطين ...
معامل التعيين [] الخاص بالصنف Array في روبي
يعيّن المعامل [] قيمة عنصر ذي فهرس محدد، أو قيم عدة عناصر تبدأ عند عنصر محدد وتمتد عددًا محددًا من العناصر، أو قيم عدة عناصر موجودة عند مجال محدد في مصفوفة. إن كانت الفهارس تشير إلى عناصر تقع خارج نطاق المصفوفة المعطاة، فستُوسَّع المصفوفة تلقائيًا. تُدرج العناصر في المصفوفة عند الفهرس start إن كانت قيمة الوسيط length تساوي 0. إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع العنصر بدءًا من نهاية المصفوفة، إذ تمثِّل القيمة -1 فهرس العنصر الأخير. بالنسبة للوسيطين ...
التابع caller_locations الخاص بالصنف Kernel في روبي
يعيد التابع caller_locations مكدس التنفيذ (execution stack) الحالي كمصفوفة تحتوي كائنات تعقب عكسي (backtrace location objects). انظر صفحة Thread::Backtrace::Location لمزيد من المعلومات. البنية العامة caller_locations(start=1, length=nil) → array or nil
caller_locations(range)→ array or nil
يحدد الوسيط الاختياري start عدد مدخلات المكدس الأولية التي ستُحذف من أعلى المكدس. ويمكن استخدام الوسيط length اختياري ثاني لتحديد عدد المدخلات التي ستُعاد من المكدس. يعيد التابع القيمة nil إن كان الوسيط start أكبر من حجم مكدس التنفيذ الحالي. اختياريًا، يمكنك تمرير مجال range، والذي سيؤدي إلى ...
التابع Keyboard.move() في أردوينو
يحرك التابع move() مؤشر الفأرة في الحاسوب المتصل. يُحدَّد الموقع الجديد المراد تحريك المؤشر إليه نسبةً إلى الموقع الحالي للمؤشر. قبل استعمال التابع move()، يجب استدعاء التابع begin(). البنية العامة Mouse.move(xVal, yPos, wheel);
المعاملات xVal محرفٌ ذو إشارة (signed char) يحدِّد مقدار انتقال المؤشر على المحور الأفقي (x-axis). yVal محرفٌ ذو إشارة (signed char) يحدِّد مقدار انتقال المؤشر على المحور الشاقولي (y-axis). wheel محرفٌ ذو إشارة (signed char) يحدِّد مقدار تدوير عجلة الفأرة. القيم المعادة لا يعاد أي شيء. أمثلة ...
أنواع البيانات (Data Types) في Kotlin
إن كلَّ عنصرٍ في Kotlin يعد كائنًا إذ يمكن استدعاء الدوال (member functions) والخاصّيّات (properties) عبر أي متغيِّر (variable)، ولبعض الأنواع تمثيلها الداخلي الخاص بها؛ فعلى سبيل المثال تُمثَّل الأعداد والمحارف والقيم المنطقية (boolean) كقيمٍ أساسيّةٍ أثناء التشغيل (runtime) ولكنها بالنسبة للمستخدم مجرّد أصنافٍ عادية، وتناقش هذه الصفحة الأنواع الرئيسيّة للبيانات في Kotlin وهي: الأعداد، والمحارف، والقيم المنطقية (boolean)، والمصفوفات، والسلاسل النصيّة. الأعداد (Numbers) تتعامل لغة Kotlin مع البيانات العدديّة بطريقةٍ مماثلةٍ للغة Java ولكن بفوارق بسيطة، فلا تدعم مثلًا ...
التابع rand الخاص بالصنف Kernel في روبي
يولد التابع rand عددًا شبه عشوائي يقع ضمن مجال محدَّد. البنية العامة rand(max=0) → number
إن استدعي التابع rand بدون تمرير معاملات إليه، أو إن كان max.to_i.abs == 0، فسيعيد التابع rand عددًا عشريًا شبه عشوائي (pseudo-random) محصورًا في المجال 0.0 و 1.0 (يدخل 0.0 ضمن المجال بينما لا يدخل 1.0). إذا كان max.abs أكبر من أو يساوي 1، فسيعيد rand عددًا صحيحًا عشوائيًا أكبر من أو يساوي 0، وأصغر من max.to_i.abs. إذا كان المعامل المعطى مجالًا (من النوع Range)، فسيعيد ...
الدالة itertools.islice() في بايثون
تعيد الدّالة itertools.islice() مُكرّرًا يُعيد عناصر مُنتقاة من الكائن القابل للتّكرار المُعطى. تُنتقى العناصر بتقطيع الكائن القابل للتّكرار حسب المُعاملات المُعطاة للدّالة. البنية العامة itertools.islice(iterable, stop)
itertools.islice(iterable, start, stop[, step])
المعاملات iterable الكائن القابل للتّكرار المرغوب تقطيع عناصره. start مُعامل اختياريّ يُمثّل نقطة البداية، إن كانت قيمتها لا تُساوي الصّفر، فستُتجاهل عناصر الكائن iterable إلى حين الوصول إلى العنصر الذي يُوافق فهرسه (index) قيمة start. stop مُعامل يُحدّد نقطة التّوقف، إن كانت قيمتُه القيمةَ None فسيستمرّ التّكرار إلى حين انتهاء قيم ...
التابع caller الخاص بالصنف Kernel في روبي
يعيد التابع caller مكدس التنفيذ الحالي (execution stack)، والذي هو مصفوفة تحتوي على سلاسل نصية بالشكل file:line أو `file:line: in `method. البنية العامة caller(start=1, length=nil) → array or nil
caller(range) → array or nil
يحدد الوسيط الاختياري start عدد مدخالات المكدس الأولية (initial stack entries) التي ستٌحذف من الجزء العلوي من المكدس. يمكن استخدام وسيط اختياري ثاني length لتحديد عدد المدخلات التي ستُعاد من المكدس. يعيد التابع caller القيمة nil إن كان الوسيط start أكبر من حجم مكدس التنفيذ الحالي. اختياريًا، ...
الدالة 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 الكائن المراد استعماله مع الكائن المعطى في إنشاء كائن من ...
المولدات في PHP
تقدّم المولِّدات (Generators) طريقة سهلة لاستخدام المكرِّرات (Iterators) البسيطة دون الدخول في تعقيدات استخدام صنف يطبّق الواجهة Iterator. تتيح المولِّدات كتابة شيفرة تستخدم foreach لمرور على مجموعة من البيانات دون الحاجة إلى بناء مصفوفة في الذاكرة مما قد يؤدي إلى تجاوز حدود الذاكرة، أو يحتاج إلى وقت معالجة طويل لإنشائه. بدلًا من ذلك، يمكن كتابة دالة مولِّدة وهي دالة مشابهة للدوال الاعتيادية باستثناء أنّها لا تعيد النتيجة مرة واحدة بل تعيد العدد المطلوب من النتائج لغرض تقديم القيم التي يتم ...
المولدات في PHP
تقدّم المولِّدات (Generators) طريقة سهلة لاستخدام المكرِّرات (Iterators) البسيطة دون الدخول في تعقيدات استخدام صنف يطبّق الواجهة Iterator. تتيح المولِّدات كتابة شيفرة تستخدم foreach لمرور على مجموعة من البيانات دون الحاجة إلى بناء مصفوفة في الذاكرة مما قد يؤدي إلى تجاوز حدود الذاكرة، أو يحتاج إلى وقت معالجة طويل لإنشائه. بدلًا من ذلك، يمكن كتابة دالة مولِّدة وهي دالة مشابهة للدوال الاعتيادية باستثناء أنّها لا تعيد النتيجة مرة واحدة بل تعيد العدد المطلوب من النتائج لغرض تقديم القيم التي يتم ...
المعامل [] الخاص بالصنف String في روبي
يجلب المعامل [] محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه. في الحالات الثلاث السابقة، إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. بالنسبة للحالتين الثانية والثالثة، فهرس البداية يُحسب قبل محرف واحد والفهرس يطابق حجم السلسلة. عند تمرير تعبير نمطي (Regexp) إلى المعامل []، يعيد الجزء المطابق من السلسلة. إذا أُلحق التعبير النمطي بمُعامل التقاط (capture)، ...
التابع !String.slice في روبي
يقتطع التابع !slice محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه. في الحالات الثلاث السابقة، إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. بالنسبة للحالتين الثانية والثالثة، فهرس البداية يُحسب قبل محرف واحد والفهرس يطابق حجم السلسلة. عند تمرير تعبير نمطي (Regexp) إلى التابع slice، يعيد التابع الجزء المطابق من السلسلة. إذا أُلحق التعبير النمطي بمُعامل التقاط ...
الدالة itertools.repeat() في بايثون
تعيد الدّالة itertools.repeat() مُكرّرًا يُعيد كائنًا مرارًا وتكرارًا بشكل لا نهائي أو لعدد مُحدّد من المرّات. تُستخدم مع الدالة map() لاستدعاء دالّة عدّة مرّات بنفس المُعاملات. وتُستخدم كذلك مع الدالة zip() لإنشاء جزء لا يتغيّر في كلّ صفّ. البنية العامة itertools.repeat(object[, times])
المعاملات object الكائن المُراد تكراره. times مُعامل اختياريّ يُحدّد عدد مرّات التّكرار، يكون التّكرار لا نهائيًّا إن لم تُمرّر له أيّة قيمة. القيمة المعادة مُكرّر يُعيد الكائنَ بشكل لا نهائيّ أو لعدد مُحدّد من المرّات حسب ما مُرِّرَ ...
الدالة itertools.zip_longest() في بايثون
تعيد الدّالة itertools.zip_longest() مُكرّرًا يُركّب العناصر من كلّ كائن من الكائنات القابلة للتّكرار المُعطاة. إن كانت الكائنات القابلة للتّكرار غير مُتساويّة في الطّول، فستُستخدم قيمة لملء الفراغات. يُكمل التّكرار إلى أن تنتهي قيم أطول كائن من الكائنات القابلة للتّكرار. البنية العامة itertools.zip_longest(*iterables, fillvalue=None)
المعاملات iterables الكائنات القابلة للتّكرار المُراد تركيبها. fillvalue القيمة التي ستُملؤ بها الفراغات. إن لم تُعيّن قيمة للمُعامل فالقيمة الافتراضيّة تكون القيمةَ None. القيمة المعادة مُكرّر يُعيد صفوفًا تُركّب عناصرها من عناصر الكائنات القابلة للتّكرار المُعطاة، ويملؤ ...
التابع String.slice في روبي
يجلب التابع slice محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه. في الحالات الثلاث السابقة، إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. بالنسبة للحالتين الثانية والثالثة، فهرس البداية يُحسب قبل محرف واحد والفهرس يطابق حجم السلسلة. عند تمرير تعبير نمطي (Regexp) إلى التابع slice، يعيد التابع الجزء المطابق من السلسلة. إذا أُلحق التعبير النمطي بمُعامل التقاط ...
الدالة itertools.product() في بايثون
تعيد الدّالة itertools.product() حاصل الضرب الديكارتي (أو الضرب المباشر) للكائنات القابلة للتّكرار المُعطاة. طريقة العمل مُكافئة لحلقات for المُتداخلة في تعبير مُولّد. مثلًا، الاستدعاء product(A, B) يُعيد ما يُعيده التّعبير ((x,y) for x in A for y in B). تدور الحلقات المُتداخلة مثل عدّاد مسافة (odometer) من العنصر على أقصى اليمين مُتقدّمةً عند كلّ تكرار. يُنشئ هذا النّسق ترتيبًا مُعجميًّا (lexicographic)، لذا فإن كانت الكائنات القابلة للتّكرار المُعطاة مُرتّبةً، فستُنتج صفوف الضّرب المُباشر مُرتّبةً. البنية العامة itertools.product(*iterables, repeat=1)
المعاملات iterables ...
الدالة itertools.combinations_with_replacement() في بايثون
تعيد الدّالة itertools.combinations_with_replacement() تسلسلات فرعيّة (subsequences) تُعدّ تجميعات ذات طول مُحدّد لعناصر الكائن القابل للتّكرار المُعطى مع السّماح للعناصر بأن تُكرَّر لأكثر من مرّة. تُنتَج التّجميعات حسب الترتيب المُعجميّ (lexicographic). ما يعني بأنّ الصّفوف النّاتجة ستكون مُرتّبةً إن كان الكائن القابل للتّكرار المُعطى مُرتّبًا. تُعامَل العناصر على أنّها فريدة حسب موقعها، وليس حسب قيمها. لذا إن كانت عناصر الكائن القابل للتّكرار المُدخَل فريدةً فستكون التّجميعات المُنتجةُ فريدةً كذلك. البنية العامة itertools.combinations_with_replacement(iterable, r)
المعاملات iterable الكائن القابل للتّكرار. r طول الصّفوف ...
الدالة ()os.closerange في بايثون
تُغلِق الدالة واصفات الملفات بدءً من الواصِف المُمرَّر للمعامل fd_low وصولًا إلى الواصِف الذي يَسبُق الواصِف المُمرَّر للمعامل fd_high، مُتجاهلةً الأخطاء التي قد تَحدُث. البنية العامة closerange(fd_low, fd_high)
المعاملات fd_low العدد البادِئ لمجال الواصِفات التي ستُغلَق (سيُغلَق الواصِف المُقابِل لهذا العدد). fd_high العدد المُمثِّل لنهاية مجال الواصِفات التي ستُغلَق (لن يُغلَق الواصِف المُقابِل لهذا العدد). القيمة المعادة لا تُعيد الدالة أي قيمة (أي أنَّ قيمتها المعادة None). أمثلة يُكافِئ استخدام الدالة تنفيذ الكود (ولكن الدالة تفعل ذلك بشكل أسرع): import ...
أسئلة شائعة عن لغة Kotlin
ما هي لغة Kotlin؟ تُعدُّ Kotlin إحدى لغات البرمجة مفتوحة المصدر (OSS) والمكتوبة ستاتيكيًّا، وتستهدف كلًا من بيئة JVM و Android و JavaScript و Native، وقد طُوِّرت من قِبل شركة JetBrains بدءًا من العام 2010 حيث كانت مفتوحة المصدر منذ بداياتها الأولى، ونٌشر الإصدار الرسميّ Kotlin 1.0 في الشهر الثاني (شباط) من عام 2016. ما النسخة الحاليّة للغة Kotlin؟ نٌشر الإصدار الأخير للغة Kotlin في الأوّل من الشهر الثالث (آذار) من عام 2018 وهو الإصدار Kotlin 1.2.30. هل Kotlin مجانيّة؟ ...
استخدام لغة Kotlin للتطوير في بيئة Android
تُعدُّ لغة Kotlin أداةً مناسبةً لتطوير تطبيقات Android لأنّها تزوِّد بمنصةٍ للعمل في نظام Android بميّزات لغات البرمجة الحديثة بدون فرض أي قيودٍ جديدة. ميزات استخدام لغة Kotlin للتطوير في بيئة Android التوافقيّة (Compitability): تتوافق لغة Kotlin كليًّا مع بيئة JDK6، وبهذا تتيح تشغيل التطبيقات المكتوبة بلغة Kotlin على الأجهزة ذات الإصدارات الأقدم من أنظمة Android بدون أي مشاكل تُذكر، كما وتدعم برمجيةُ Android Studio أدوات لغة Kotlin بشكلٍ تامّ ومتوافقٍ مع أنظمة بناء Android. الأداء (Performance): تعمل التطبيقات المكتوبة ...
استخدام لغة Kotlin في نطاق JavaScript
تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...
استخدام لغة Kotlin في تطوير تطبيقات الخادم (Server)
تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات الخادم (server)؛ إذ تكون الشيفرات فيها دقيقةً ومعبِّرة، وتمتاز بالتوافقيّة التامّة مع لغة Java ومن السهل تعلُّمها بسرعة. ميزات استخدام لغة Kotlin لتطوير تطبيقات الخادم (Server) القدرة على التعبير (Expressiveness): تساعد مميّزات لغة Kotlin المبتكرَة (مثل دعمها للمنشِئ الحافظ للنوع (type-safe builder) والخاصّيات المُعمّمة (delegated properties)) على إنشاء البنى التجريديّة (abstraction) سهلةِ الاستخدام. قابلية التوسّع (Scalability): تدعم لغة Kotlin ميّزة الروتينات المساعدة (coroutines)، وهي بهذا تتيح -في تطبيقات الخادم- إمكانيّة التوسّع لعددٍ ...
التابع array.pop() في بايثون
يحذف التابع العنصر في الموقع المحدد من المصفوفة ويعيده. البنية العامة array.pop([i])
المعاملات i موقع العنصر المراد حذفه. القيمة المعادة يعيد التابع العنصر المحذوف من الموقع المحدد في المصفوفة. أمثلة يبين المثال التالي آلية عمل التابع: >>> import array
>>> a1 = array.array('l', [1, 2, 3, 4, 5])
>>> a1.pop(3)
4
>>> a1.pop(0)
1
>>> a1.pop(8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: pop index out of range
انظر أيضًا التابع array.append(): يضيف التابع عنصرًا جديدًا يحمل القيمة المعطاة إلى نهاية المصفوفة. ...
الدالة tuple() في بايثون
تعيد الدّالة tuple() صفًّا يُولَّد من الكائن القابل للتّكرار المُعطى. البنية العامة tuple([iterable])
المعاملات iterable مُعامل اختياريّ، الكائن القابل للتّكرار (كالقوائم، والمجموعات، والسّلاسل النّصيّة وغيرها) المُراد تحويله إلى صفّ. القيمة المعادة صفّ جديد فارغ (إن لم تُمرّر للدّالة أيّة مُعاملات) أو صفّ تكون عناصره هي عناصر الكائن القابل للتّكرار iterable. أمثلة المثال التّالي يوضّح كيفيّة عمل هذه الدّالة: >>> tuple() # صفّ فارغ
()
>>> tuple('123') # صفّ من سلسلة نصيّة
('1', '2', '3')
>>> tuple([1, 2, 3]) # صفّ من قائمة
(1, 2, 3)
>>> ...
الدالة 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(): ...
عرض (500 السابقة | 500 التالية) (20 | 50 | 100 | 250 | 500).