الفرق بين المراجعتين ل"Kotlin/Enum/clone"
اذهب إلى التنقل
اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع Enum.clone() في لغة Kotlin}}</noinclude> تبين الدالة <code>clone()</code> إذا ما كان الكائن ا...') |
|||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع Enum.clone() في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: التابع Enum.clone() في لغة Kotlin}}</noinclude> | ||
− | + | يطلق التابع <code>clone()</code> استثناءً (exception) لأنّ ثوابت enum لا يمكن أن تُنسخ. هذا التابع يمنع الأصناف من النوع <code>[[Kotlin/Enum/index|Enum]]</code> من أن ترِث من الصنف <code>Cloneable</code>. | |
== البنية العامة == | == البنية العامة == | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
− | fun | + | protected fun clone(): Any |
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
== أمثلة == | == أمثلة == | ||
− | في الشيفرة الآتية ننشئ | + | في الشيفرة الآتية ننشئ صنفًا من النوع <code>Enum</code> باسم <code>ColorEnum</code> مكونًا من أربعة ثوابت <code>RED</code> و <code>BLUE</code> و <code>GREEN</code> و <code>ORANGE</code>، ثم ننشئ متغيرًا <code>x</code> يحتوي القيمة <code>RED</code> للصنف <code>ColorEnum</code>، ثم نستدعي الدالة <code>equals()</code>عبر <code>x</code> ، وكنتيجة لذلك سيطلق المُصرّف استثناء:<syntaxhighlight lang="kotlin"> |
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val x = ColorEnum.Red | val x = ColorEnum.Red | ||
− | val y = | + | val y = x.clone() // Error:(3, 14) Cannot access 'clone': it is protected in 'ColorEnum' |
− | |||
− | |||
− | |||
− | |||
} | } | ||
سطر 29: | سطر 22: | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
سطر 43: | سطر 29: | ||
== مصادر == | == مصادر == | ||
− | * [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/ | + | * [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/clone.html صفحة الدالة clone.equals() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] |
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Method]] | [[تصنيف:Kotlin Method]] |
مراجعة 10:20، 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
الذي استُدعيت عبره، كما سُمّيت أُثناء تعريف ذلك الكائن.