الفرق بين المراجعتين ل"Kotlin/ranges/until"

من موسوعة حسوب
< Kotlin‏ | ranges
اذهب إلى التنقل اذهب إلى البحث
(مراجعة وتدقيق.)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الثابتة <code>‎until()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:الدالة <code>‎until()‎</code> في Kotlin}}</noinclude>
تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة).  
+
تنشئ الدالة ‎<code>until()‎</code> مجالًا (range) تصاعديًا يبدأ القيمة التي استُدعيت معها وحتى القيمة الممرّرة إليها (لا تدخل هذه القيمة ضمن المجال).  
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
سطر 12: سطر 12:
 
infix fun Byte.until(to: Short): IntRange  
 
infix fun Byte.until(to: Short): IntRange  
 
infix fun Short.until(to: Short): IntRange
 
infix fun Short.until(to: Short): IntRange
</syntaxhighlight>تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من القيمة التي استُدعيت عبرها الدالة، وإلّا فستعيد الدالة مجالا فارغًا. <syntaxhighlight lang="kotlin">
+
</syntaxhighlight>تنشئ الدالة ‎<code>until()‎</code> مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند القيمة <code>to</code> الممرّرة إليها (لا تدخل ضمن المجال). ينبغي أن تكون القيمة <code>to</code> المُمرَّرة أكبر من القيمة التي استُدعيت معها الدالة، وإلّا فستعيد الدالة مجالًا فارغًا.<syntaxhighlight lang="kotlin">
 
infix fun Char.until(to: Char): CharRange  
 
infix fun Char.until(to: Char): CharRange  
  
</syntaxhighlight>تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). الحرف المُمرّر يجب أن يكون أكبر من المحرف <code>'‎\u0000'</code> أو ستعيد الدالة مجالا فارغًا.<syntaxhighlight lang="kotlin">
+
</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 Int.until(to: Int): IntRange  
 
infix fun Byte.until(to: Int): IntRange  
 
infix fun Byte.until(to: Int): IntRange  
 
infix fun Short.until(to: Int): IntRange
 
infix fun Short.until(to: Int): IntRange
</syntaxhighlight>تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من <code>Int.MIN_VALUE</code>، وإلّا فستعيد الدالة مجالا فارغًا.<syntaxhighlight lang="kotlin">
+
</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 Int.until(to: Long): LongRange  
 
infix fun Long.until(to: Long): LongRange  
 
infix fun Long.until(to: Long): LongRange  
 
infix fun Byte.until(to: Long): LongRange
 
infix fun Byte.until(to: Long): LongRange
 
infix fun Short.until(to: Long): LongRange  
 
infix fun Short.until(to: Long): LongRange  
</syntaxhighlight>تعيد الدالة ‎<code>until()‎</code> مجالا (range) تصاعديًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة (القيمة المُمرّرة مُستثناة). ينبغي أن تكون القيمة الممررة أكبر من <code>Long.MIN_VALUE</code>، وإلّا فستعيد الدالة مجالا فارغًا.
+
</syntaxhighlight>تنشئ الدالة ‎<code>until()‎</code> مجالًا تصاعديًا يبدأ من القيمة التي استُدعيت معها وينتهي عند القيمة <code>to</code> الممرّرة إليها (لا تدخل ضمن المجال). ينبغي أن تكون القيمة الممرَّرة أكبر من القيمة <code>[[Kotlin/Long/MIN VALUE|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)]].
+
وجود الكلمة المفتاحية <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> المُمرَّرة ولا تدخل هذه القيمة ضمن المجال.
مجال (range) تصاعدي.
+
==مثال==
 
+
استعمال الدالة <code>until()‎</code> لإنشاء مجال من الأعداد الصحيحة ومجال من الأحرف:<syntaxhighlight lang="kotlin">
== مثال ==
 
 
 
=== استخدام الدالة <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 = 5
 
     val x = 5
سطر 44: سطر 40:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
==انظر أيضًا==
==<nowiki/>أنظر أيضًا ==
+
* الدالة <code>[[Kotlin/Char/rangeTo|rangeTo()‎]]</code>: تنشئ مجالًا يقع بين المحرف الذي استدعي معها والمحرف المُمرّر إليها.
* <code>[[Kotlin/ranges/downTo|downTo()]]</code>‎ : تعيد الدالة مجالا متدرّجًا (progression) تنازليًا من القيمة التي استُدعيت عبرها وحتى القيمة الممرّرة. ينبغي أن تكون القيمة الممررة أصغر من القيمة التي استُدعيت عبرها الدالة، وإلّا ستعيد الدالة مجالا متدرجا فارغًا.
+
*الدالة<nowiki/>[[Kotlin/ranges/downTo|<code>downTo()</code>]]‎ : تنشئ مجالًا متدرجًا (progression) يبدًأ من القيمة القصوى التي استُدعيت معها وينحدر تنازليًّا حتى يصل إلى القيمة الممرّرة إليها.
 
+
* الدالة <code>[[Kotlin/Char/compareTo|compareTo()]]</code>‎: توازن بين قيمة العنصر الذي استُدعيت معه والقيمة المُمرّرة إليه ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كانت القيمة الأولى (قيمة العنصر الذي استُدعيت معه) أصغر من القيمة الثانية، أو قيمة موجبة إن كانت القيمة الأولى أكبر من القيمة الثانية.
 
==مصادر==
 
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.ranges/until.html الدالة  until في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.ranges/until.html صفحة الدالة ()until في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin functions]]
 
[[تصنيف:Kotlin functions]]

مراجعة 15:29، 13 أغسطس 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 المُمرَّرة ولا تدخل هذه القيمة ضمن المجال.

مثال

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

مصادر