الفرق بين المراجعتين لصفحة: «Kotlin/Enum/clone»
لا ملخص تعديل |
لا ملخص تعديل |
||
| سطر 29: | سطر 29: | ||
== مصادر == | == مصادر == | ||
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/clone.html صفحة الدالة clone | * [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/clone.html صفحة الدالة Enum.clone() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Method]] | [[تصنيف:Kotlin Method]] | ||
مراجعة 10:27، 4 يوليو 2018
يطلق التابع clone() استثناءً (exception) لأنّ ثوابت enum لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع Enum من أن ترِث من الصنف Cloneable.
البنية العامة
protected fun clone(): Any
أمثلة
في الشيفرة الآتية ننشئ صنفًا من النوع Enum باسم ColorEnum مكونًا من أربعة ثوابت Red و Blue و Green و Orange، ثم ننشئ متغيرًا x يحتوي القيمة RED للصنف ColorEnum، ثم نستدعي الدالة equals()عبر x ، وكنتيجة لذلك سيطلق المُصرّف استثناء:
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)
}
انظر أيضًا
- الخاصيّة
ordinal: تعيد ترتيب مُركّبة الكائنenumالذي استُدعيت عبره، أي ترتيبها في تصريح الكائنenum،بحيث تأخذ المُركّبة الأولى العدد0. - الخاصيّة
name:تعيد اسم مُركّبة الكائنenumالذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن.