الفرق بين المراجعتين لصفحة: «Kotlin/ranges/until»
لا ملخص تعديل |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الثابتة <code>until()</code> في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الثابتة <code>until()</code> في لغة Kotlin}}</noinclude> | ||
تعيد الدالة <code>until()</code> مجالا | تعيد الدالة <code>until()</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
infix fun Int. | infix fun Int.until(to: Byte): IntRange | ||
infix fun Long. | infix fun Long.until(to: Byte): LongRange | ||
infix fun Byte. | infix fun Byte.until(to: Byte): IntRange | ||
infix fun Short. | infix fun Short.until(to: Byte): IntRange | ||
infix fun | infix fun Long.until(to: Int): LongRange | ||
infix fun Int. | infix fun Int.until(to: Short): IntRange | ||
infix fun Long. | infix fun Long.until(to: Short): LongRange | ||
infix fun Byte. | infix fun Byte.until(to: Short): IntRange | ||
infix fun Short. | infix fun Short.until(to: Short): IntRange | ||
</syntaxhighlight>تعيد الدالة <code>until()</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من القيمة التي استُدعيت عبرها الدالة، وإلّا فستعيد الدالة مجالا فارغًا. <syntaxhighlight lang="kotlin"> | |||
infix fun Char.until(to: Char): CharRange | |||
infix fun | |||
</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)]]. | |||
== القيمة المُعادة == | == القيمة المُعادة == | ||
مجال | مجال (range) تصاعدي. | ||
== مثال == | == مثال == | ||
=== استخدام الدالة <code>until()</code> === | === استخدام الدالة <code>until()</code> === | ||
في الشيفرة التالية نعرّف | في الشيفرة التالية نعرّف عددًا <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 = | val x = 5 | ||
val y = | val y = 'a' | ||
print(x.until(9)) // 5..8 | |||
print(y.until('f')) // a..e | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==<nowiki/>أنظر أيضًا == | ==<nowiki/>أنظر أيضًا == | ||
* | * <code>[[Kotlin/ranges/downTo|downTo()]]</code> : تعيد الدالة مجالا متدرّجًا (progression) تنازليًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة. ينبغي أن تكون القيمة الممررة أصغر من القيمة التي استُدعيت عبرها الدالة، وإلّا ستعيد الدالة مجالا متدرجا فارغًا. | ||
==مصادر== | ==مصادر== | ||
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.ranges/ | * [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) تنازليًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة. ينبغي أن تكون القيمة الممررة أصغر من القيمة التي استُدعيت عبرها الدالة، وإلّا ستعيد الدالة مجالا متدرجا فارغًا.