الثابتة ‎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()‎ مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من القيمة التي استُدعيت عبرها الدالة، وإلّا فستعيد الدالة مجالا فارغًا.

infix fun Char.until(to: Char): CharRange

تعيد الدالة ‎until()‎ مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). الحرف المُمرّر يجب أن يكون أكبر من المحرف '‎\u0000' أو ستعيد الدالة مجالا فارغًا.

infix fun Int.until(to: Int): IntRange 
infix fun Byte.until(to: Int): IntRange 
infix fun Short.until(to: Int): IntRange

تعيد الدالة ‎until()‎ مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من Int.MIN_VALUE، وإلّا فستعيد الدالة مجالا فارغًا.

infix fun Int.until(to: Long): LongRange 
infix fun Long.until(to: Long): LongRange 
infix fun Byte.until(to: Long): LongRange
infix fun Short.until(to: Long): LongRange

تعيد الدالة ‎until()‎ مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من Long.MIN_VALUE، وإلّا فستعيد الدالة مجالا فارغًا.

يُلاحَظ وجود الكلمة المفتاحية infix للدلالة على أن هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل .والأقواس () المُستخدَمَين في الاستدعاء عادةً، وللمزيد من التفاصيل راجع توثيق التدوين الداخلي للدوال (infix functions).

القيمة المُعادة

مجال (range) تصاعدي.

مثال

استخدام الدالة until()‎

في الشيفرة التالية نعرّف عددًا x يساوي 5 وحرفًا y يساوي 'a'، ثم تنشئ مجالين عبر استدعاء الدالةuntil()‎ على x وتمرير العدد 9، ثم استدعائها عبر y وتمرير الحرف 'f' كوسيط، ثم تطبع الناتج:

fun main(args: Array<String>) {    
    val x = 5
    val y = 'a'

    print(x.until(9)) // 5..8
    print(y.until('f')) // a..e
}

أنظر أيضًا

  • downTo()‎ : تعيد الدالة مجالا متدرّجًا (progression) تنازليًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة. ينبغي أن تكون القيمة الممررة أصغر من القيمة التي استُدعيت عبرها الدالة، وإلّا ستعيد الدالة مجالا متدرجا فارغًا.

مصادر