الفرق بين المراجعتين لصفحة: «Kotlin/ranges/until»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الثابتة <code>ranges.until()</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>until()</code> مجالا...' |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(4 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE:الدالة <code>until()</code> في Kotlin}}</noinclude> | ||
تنشئ الدالة <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> مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند القيمة <code>to</code> الممرّرة إليها (لا تدخل ضمن المجال). ينبغي أن تكون القيمة <code>to</code> المُمرَّرة أكبر من القيمة التي استُدعيت معها الدالة، وإلّا فستعيد الدالة مجالًا فارغًا.<syntaxhighlight lang="kotlin"> | |||
infix fun Char.until(to: Char): CharRange | |||
infix fun | |||
</syntaxhighlight> | </syntaxhighlight>تنشئ الدالة <code>until()</code> مجالًا تصاعديًا من المحارف يبدأ من المحرف <code>Char</code> الذي استُدعي معها وينتهي عند المحرف <code>to</code> الممرّرة إليها (لا تدخل ضمن المجال). يجب أن يكون المحرف <code>to</code> المُمرّر أكبر من المحرف <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> مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند القيمة <code>to</code> الممرّرة إليها (لا تدخل ضمن المجال). ينبغي أن تكون القيمة <code>to</code> الممرَّرة أكبر من القيمة <code>[[Kotlin/Int/MIN VALUE|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> مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند القيمة <code>to</code> الممرّرة إليها (لا تدخل ضمن المجال). ينبغي أن تكون القيمة الممرَّرة أكبر من القيمة <code>[[Kotlin/Long/MIN VALUE|Long.MIN_VALUE]]</code>، وإلّا فستعيد الدالة مجالا فارغًا. | |||
== | وجود الكلمة المفتاحية <code>infix</code> يدل على أنَّ هذه الدالة يمكن استدعاؤها بنمط [[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 notation)؛ أي من خلال حذف المعامل <code>.</code>والأقواس <code>()</code> المُستخدَمَين في الاستدعاء عادةً. | ||
==المعاملات== | |||
== | === <code>to</code> === | ||
القيمة القصوى التي سيُنشَأ منها المجال. | |||
=== | ==القيمة المعادة== | ||
يعاد مجالٌ تصاعديٌّ يبدأ من القيمة المعطاة وينتهي عند القيمة <code>to</code> المُمرَّرة ولا تدخل هذه القيمة ضمن المجال. | |||
==مثال== | |||
استعمال الدالة <code>until()</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> | ||
==انظر أيضًا== | |||
== | * الدالة <code>[[Kotlin/Char/rangeTo|rangeTo()]]</code>: تنشئ مجالًا يقع بين المحرف الذي استدعي معها والمحرف المُمرّر إليها. | ||
* | *الدالة<nowiki/>[[Kotlin/ranges/downTo|<code>downTo()</code>]] : تنشئ مجالًا متدرجًا (progression) يبدًأ من القيمة القصوى التي استُدعيت معها وينحدر تنازليًّا حتى يصل إلى القيمة الممرّرة إليها. | ||
* الدالة <code>[[Kotlin/Char/compareTo|compareTo()]]</code>: توازن بين قيمة العنصر الذي استُدعيت معه والقيمة المُمرّرة إليه ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية. | |||
==مصادر== | ==مصادر== | ||
* [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 | [[تصنيف:Koltin Function]] | ||
[[تصنيف:Kotlin Range]] |
المراجعة الحالية بتاريخ 04:57، 9 سبتمبر 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()
مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند القيمة to
الممرّرة إليها (لا تدخل ضمن المجال). ينبغي أن تكون القيمة to
المُمرَّرة أكبر من القيمة التي استُدعيت معها الدالة، وإلّا فستعيد الدالة مجالًا فارغًا.
infix fun Char.until(to: Char): CharRange
تنشئ الدالة until()
مجالًا تصاعديًا من المحارف يبدأ من المحرف Char
الذي استُدعي معها وينتهي عند المحرف to
الممرّرة إليها (لا تدخل ضمن المجال). يجب أن يكون المحرف to
المُمرّر أكبر من المحرف '\u0000'
أو ستعيد الدالة مجالًا فارغًا.
infix fun Int.until(to: Int): IntRange
infix fun Byte.until(to: Int): IntRange
infix fun Short.until(to: Int): IntRange
تنشئ الدالة until()
مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند القيمة to
الممرّرة إليها (لا تدخل ضمن المجال). ينبغي أن تكون القيمة to
الممرَّرة أكبر من القيمة 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()
مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند القيمة to
الممرّرة إليها (لا تدخل ضمن المجال). ينبغي أن تكون القيمة الممرَّرة أكبر من القيمة Long.MIN_VALUE
، وإلّا فستعيد الدالة مجالا فارغًا.
وجود الكلمة المفتاحية infix
يدل على أنَّ هذه الدالة يمكن استدعاؤها بنمط التدوين الداخليّ (infix notation)؛ أي من خلال حذف المعامل .
والأقواس ()
المُستخدَمَين في الاستدعاء عادةً.
المعاملات
to
القيمة القصوى التي سيُنشَأ منها المجال.
القيمة المعادة
يعاد مجالٌ تصاعديٌّ يبدأ من القيمة المعطاة وينتهي عند القيمة to
المُمرَّرة ولا تدخل هذه القيمة ضمن المجال.
مثال
استعمال الدالة until()
لإنشاء مجال من الأعداد الصحيحة ومجال من الأحرف:
fun main(args: Array<String>) {
val x = 5
val y = 'a'
print(x.until(9)) // 5..8
print(y.until('f')) // a..e
}
انظر أيضًا
- الدالة
rangeTo()
: تنشئ مجالًا يقع بين المحرف الذي استدعي معها والمحرف المُمرّر إليها. - الدالة
downTo()
: تنشئ مجالًا متدرجًا (progression) يبدًأ من القيمة القصوى التي استُدعيت معها وينحدر تنازليًّا حتى يصل إلى القيمة الممرّرة إليها. - الدالة
compareTo()
: توازن بين قيمة العنصر الذي استُدعيت معه والقيمة المُمرّرة إليه ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية.