الفرق بين المراجعتين لصفحة: «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
الذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن.