الفرق بين المراجعتين لصفحة: «Kotlin/ranges/until»

من موسوعة حسوب
< Kotlin‏ | ranges
لا ملخص تعديل
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الثابتة <code>‎until()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الثابتة <code>‎until()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة ‎<code>until()‎</code> مجالا متدرّجًا (progression) تنازليًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة. ينبغي أن تكون القيمة الممررة أصغر من القيمة التي استُدعيت عبرها الدالة، وإلّا ستعيد الدالة مجالا متدرجا فارغًا.
تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة).  
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
infix fun Int.downTo(to: Byte): IntProgression
infix fun Int.until(to: Byte): IntRange
infix fun Long.downTo(to: Byte): LongProgression
infix fun Long.until(to: Byte): LongRange
infix fun Byte.downTo(to: Byte): IntProgression
infix fun Byte.until(to: Byte): IntRange
infix fun Short.downTo(to: Byte): IntProgression
infix fun Short.until(to: Byte): IntRange
infix fun Char.downTo(to: Char): CharProgression
infix fun Long.until(to: Int): LongRange
infix fun Int.downTo(to: Int): IntProgression
infix fun Int.until(to: Short): IntRange
infix fun Long.downTo(to: Int): LongProgression
infix fun Long.until(to: Short): LongRange
infix fun Byte.downTo(to: Int): IntProgression
infix fun Byte.until(to: Short): IntRange
infix fun Short.downTo(to: Int): IntProgression
infix fun Short.until(to: Short): IntRange
infix fun Int.downTo(to: Long): LongProgression
</syntaxhighlight>تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من القيمة التي استُدعيت عبرها الدالة، وإلّا فستعيد الدالة مجالا فارغًا. <syntaxhighlight lang="kotlin">
infix fun Long.downTo(to: Long): LongProgression
infix fun Char.until(to: Char): CharRange
infix fun Byte.downTo(to: Long): LongProgression
infix fun Short.downTo(to: Long): LongProgression
infix fun Int.downTo(to: Short): IntProgression
infix fun Long.downTo(to: Short): LongProgression
infix fun Byte.downTo(to: Short): IntProgression
infix fun Short.downTo(to: Short): IntProgression


</syntaxhighlight>
</syntaxhighlight>تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة).  الحرف المُمرّر يجب أن يكون أكبر من المحرف <code>'‎\u0000'</code> أو ستعيد الدالة مجالا فارغًا.<syntaxhighlight lang="kotlin">
infix fun Int.until(to: Int): IntRange
infix fun Byte.until(to: Int): IntRange
infix fun Short.until(to: Int): IntRange
</syntaxhighlight>تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من <code>Int.MIN_VALUE</code>، وإلّا فستعيد الدالة مجالا فارغًا.<syntaxhighlight lang="kotlin">
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
</syntaxhighlight>تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من <code>Long.MIN_VALUE</code>، وإلّا فستعيد الدالة مجالا فارغًا.
 
يُلاحَظ وجود الكلمة المفتاحية <code>infix</code> للدلالة على أن هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل <code>.</code>والأقواس <code>()</code> المُستخدَمَين في الاستدعاء عادةً، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/functions#.D8.A7.D9.84.D8.AA.D8.AF.D9.88.D9.8A.D9.86 .D8.A7.D9.84.D8.AF.D8.A7.D8.AE.D9.84.D9.8A.D9.91 .28Infix notation.29|توثيق التدوين الداخلي للدوال (infix functions)]].


== القيمة المُعادة ==
== القيمة المُعادة ==
مجال متدرّج (progression) تنازلي.
مجال (range) تصاعدي.


== مثال ==
== مثال ==


=== استخدام الدالة <code>until()‎</code>  ===
=== استخدام الدالة <code>until()‎</code>  ===
في الشيفرة التالية نعرّف عددين <code>x</code> و <code>y</code>، ثم نعرّف مجال متدرّج <code>p</code> عبر استدعاء الدالة<code>until()‎</code> عبر <code>x</code> ونمرر إليها الوسيط <code>y</code> ، ثم نستخدم <code>p</code> في حلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>:<syntaxhighlight lang="kotlin">
في الشيفرة التالية نعرّف عددًا <code>x</code> يساوي <code>5</code> [[Kotlin/Char|وحرفًا]] <code>y</code> يساوي <code>'a'</code>، ثم تنشئ مجالين عبر   استدعاء الدالة<code>until()‎</code> على <code>x</code> وتمرير العدد <code>9</code>، ثم استدعائها عبر <code>y</code> وتمرير الحرف <code>'f'</code> كوسيط، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {     
fun main(args: Array<String>) {     
     val x = 9
     val x = 5
     val y = 4
     val y = 'a'
     val p = x.downTo(y)  
 
      
     print(x.until(9)) // 5..8
    for (a in p) print(a) // 987654
     print(y.until('f')) // a..e
}
}
</syntaxhighlight>
</syntaxhighlight>


==<nowiki/>أنظر أيضًا ==
==<nowiki/>أنظر أيضًا ==
*الثابتة<code>[[Kotlin/text/category|category]]</code>‎ : تساوي القيمة القصوى لبديل وحدة اليونيكود  (Unicode surrogate code unit).
* <code>[[Kotlin/ranges/downTo|downTo()]]</code>‎ : تعيد الدالة مجالا متدرّجًا (progression) تنازليًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة. ينبغي أن تكون القيمة الممررة أصغر من القيمة التي استُدعيت عبرها الدالة، وإلّا ستعيد الدالة مجالا متدرجا فارغًا.
 
==مصادر==
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.ranges/down-to.html الدالة  until في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.ranges/until.html الدالة  until في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin functions]]
[[تصنيف:Kotlin functions]]

مراجعة 18:39، 2 يوليو 2018

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

مصادر