الفرق بين المراجعتين ل"Kotlin/Enum/clone"

من موسوعة حسوب
< Kotlin‏ | Enum
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع Enum.clone()‎ في لغة Kotlin}}</noinclude> تبين الدالة <code>clone()</code>‎ إذا ما كان الكائن ا...')
 
ط
 
(7 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع Enum.clone()‎ في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:الدالة <code>Enum.clone()‎</code> في Kotlin}}</noinclude>
تبين الدالة <code>clone()</code>‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت عبره. وأيُّ تعريف لاستخدام هذه الدالة يجب أن يكون:
+
ترمي الدالة <code>clone()</code>‎ استثناءً لأنّ ثوابت الصنف [[Kotlin/Enum|<code>Enum</code>]] لا يمكن أن تُنسَخ. تمنع هذه الدالة الأصناف ذات النوع <code>[[Kotlin/Enum|Enum]]</code> من أن ترِث من الصنف <code>Cloneable</code>.
  
 
== البنية العامة ==
 
== البنية العامة ==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
fun equals(other: Any?): Boolean
+
protected fun clone(): Any
  
 
</syntaxhighlight>
 
</syntaxhighlight>
== القيم المعادة ==
 
القيمة المنطقية <code>true</code> إن كان الكائن المُمرّر للدالة يساوي الكائن الذي استدعيت عبره، أو <code>false</code> خلاف ذلك.
 
 
 
== أمثلة ==
 
== أمثلة ==
في الشيفرة الآتية ننشئ صنفين من النوع <code>Enum</code> باسم <code>ColorEnum</code> و <code>ColorEnum2</code> مكونين من أربعة مركّبات  <code>RED</code>  و <code>BLUE</code>  و <code>GREEN</code>  و <code>ORANGE</code>، ثم ننشئ متغيرين <code>x</code> و <code>y</code> يحتويان القيمة <code>RED</code> لكلا  الصنفين، ثم نستدعي الدالة <code>equals()</code>‎عبر <code>x</code> و <code>y</code> ثم نطبع الناتج:<syntaxhighlight lang="kotlin">
+
يؤدي استعمال الدالة <code>clone()</code>‎ في المثال التالي إلى رمي استثناء:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
     val x = ColorEnum.Red
 
     val x = ColorEnum.Red
     val y = ColorEnum2.Red
+
     val y = x.clone() // Error:(3, 14) Cannot access 'clone': it is protected in 'ColorEnum'
   
 
    print(x.equals(y)) // false
 
    print(x.equals(x)) // true
 
 
 
 
}
 
}
  
سطر 29: سطر 22:
 
  }
 
  }
  
enum class ColorEnum2(val colorCode: Int)
 
{
 
    Red(2),
 
    Blue(11212),
 
    Green(21212),
 
    Orange(212121)
 
}
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* الخاصيّة <code>[[Kotlin/Enum/ordinal|ordinal]]</code>: تعيد ترتيب مُركّبة الكائن <code>enum</code> الذي استُدعيت عبره، أي ترتيبها في تصريح الكائن <code>enum،</code> بحيث تأخذ المُركّبة الأولى العدد <code>0</code>. 
+
* الدالة <code>[[Kotlin/Enum/compareTo|compareTo()‎]]</code> بين الكائن الذي استُدعي معها والكائن المُمرّر إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كان الكائن الأول (أي الذي استُدعي معها) أصغر من الكائن الثاني، أو قيمة موجبة إن كان الكائن الأول أكبر من الكائن الثاني.
* الخاصيّة <code>[[Kotlin/Enum/name|name]]</code>:تعيد اسم مُركّبة الكائن <code>enum</code> الذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن. 
+
* الدالة [[Kotlin/Enum/hashCode|<code>hashCode()</code>‎]]: تعيد الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها
  
 
== مصادر ==
 
== مصادر ==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/equals.html صفحة الدالة clone.equals()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/clone.html صفحة التابع Enum.clone()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Method]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Enum]]

المراجعة الحالية بتاريخ 12:34، 9 سبتمبر 2018

ترمي الدالة clone()‎ استثناءً لأنّ ثوابت الصنف Enum لا يمكن أن تُنسَخ. تمنع هذه الدالة الأصناف ذات النوع Enum من أن ترِث من الصنف Cloneable.

البنية العامة

protected fun clone(): Any

أمثلة

يؤدي استعمال الدالة clone()‎ في المثال التالي إلى رمي استثناء:

fun main(args: Array<String>) {
    val x = ColorEnum.Red
    val y = x.clone() // Error:(3, 14) Cannot access 'clone': it is protected in 'ColorEnum'
}

enum class ColorEnum(val colorCode: Int) 
{
     Red(2),
     Blue(11212),
     Green(21212),
     Orange(212121)
 }

انظر أيضًا

  • الدالة compareTo()‎ بين الكائن الذي استُدعي معها والكائن المُمرّر إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كان الكائن الأول (أي الذي استُدعي معها) أصغر من الكائن الثاني، أو قيمة موجبة إن كان الكائن الأول أكبر من الكائن الثاني.
  • الدالة hashCode(): تعيد الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها

مصادر