الفرق بين المراجعتين لصفحة: «Kotlin/Enum/equals»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع Enum.equals() في لغة Kotlin}}</noinclude> تبين الدالة <code>equals()</code> إذا ما كان الكائن...' |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE:الدالة <code>Enum.equals()</code> في Kotlin}}</noinclude> | ||
تتحقق الدالة <code>equals()</code> إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معها. استدعاء هذه الدالة يجب أن يكون: | |||
* انعكاسيًا (Reflexive): لكل مرجع <code>x</code> لا يساوي <code>null</code>، يجب أن | *انعكاسيًا (Reflexive): لكل مرجع <code>x</code> لا يساوي <code>null</code>، يجب أن يعيد استدعاء <code>x.equals(x)</code> القيمة <code>true</code>. | ||
* تماثليًَا (Symmetric): لكل قيمتين مرجعيتين <code>x</code> و <code>y</code> لا تساويان <code>null</code>، | *تماثليًَا (Symmetric): لكل قيمتين مرجعيتين <code>x</code> و <code>y</code> لا تساويان <code>null</code>، سيعيد الاستدعاء <code>x.equals(y)</code> القيمة <code>true</code> إذا، وفقط، إذا أعادت <code>y.equals(x)</code> القيمة <code>true</code>. | ||
* تواتريًا (Transitive): لكل القيم المرجعية <code>x</code> و <code>y</code> و <code>z</code> التي لا تساوي <code>null</code>، | *تواتريًا (Transitive): لكل القيم المرجعية <code>x</code> و <code>y</code> و <code>z</code> التي لا تساوي <code>null</code>، سيعيد استدعاء <code>x.equals(z)</code> القيمة <code>true</code> إن أعادت <code>x.equals(y)</code> و <code>y.equals(z)</code> كلاهما القيمة <code>true</code>. | ||
* متسقًا (Consistent): لكل قيمتين مرجعيتين <code>x</code> و <code>y</code> لا تساويان <code>null</code>، سيعيد استدعاء الدالة <code>x.equals (y)</code> | *متسقًا (Consistent): لكل قيمتين مرجعيتين <code>x</code> و <code>y</code> لا تساويان <code>null</code>، سيعيد استدعاء الدالة <code>x.equals(y)</code> إما القيمة <code>true</code> أو القيمة <code>false</code> دومًا في كل مرة شرط عدم تغيير أي معلومة تستخدمها الدالة <code>equals()</code> في موازنة الكائنين. | ||
انتبه إلى أنَّ المعامل <code>==</code> في أكواد Kotlin سيُترجم إلى استدعاءٍ للدالة <code>equals()</code> عندما يكون كلا الكائنين المراد الموازنة بينهما لا يساويان القيمة <code>null</code>. | |||
==البنية العامة== | |||
<syntaxhighlight lang="kotlin"> | |||
fun equals(other: Any?): Boolean | |||
</syntaxhighlight> | |||
</syntaxhighlight> | |||
== | == المعاملات == | ||
== | === <code>other</code> === | ||
الكائن الآخر المراد التحقق من تساويه مع الكائن المعطى. | |||
== | ==القيم المعادة== | ||
تعاد القيمة <code>true</code> المنطقية إن كان الكائن <code>other</code> المُمرّر يساوي الكائن المعطى، أو القيمة <code>false</code> خلاف ذلك. | |||
==أمثلة== | |||
إنشاء نسختين من الصنف <code>[[Kotlin/Enum|Enum]]</code> واستعمال الدالة <code>equals()</code> للتحقق من تساوي ثابت من النسخة الأولى مع آخر من النسخة الثانية :<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val x = ColorEnum.Red | |||
val y = ColorEnum2.Red | |||
print(x.equals(y)) // false | |||
print(x.equals(x)) // true | |||
} | } | ||
enum class ColorEnum(val colorCode: Int) | |||
{ | |||
Red(2), | |||
Blue(11212), | |||
Green(21212), | |||
Orange(212121) | |||
} | |||
enum class ColorEnum2(val colorCode: Int) | |||
{ | |||
Red(2), | |||
Blue(11212), | |||
Green(21212), | |||
Orange(212121) | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== انظر أيضًا == | ==انظر أيضًا== | ||
* | *الدالة <code>[[Kotlin/Enum/compareTo|compareTo()]]</code> بين الكائن الذي استُدعي معها والكائن المُمرّر إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كان الكائن الأول (أي الذي استُدعي معها) أصغر من الكائن الثاني، أو قيمة موجبة إن كان الكائن الأول أكبر من الكائن الثاني. | ||
* | * الخاصيّة <code>[[Kotlin/Enum/name|name]]</code>: تمثل اسم الثابت المعرف في الكائن <code>enum</code> الذي استُدعي معها كما سُمّي أُثناء تعريف هذا الكائن. | ||
==مصادر== | |||
== مصادر == | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/equals.html صفحة الدالة Enum.equals() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/- | |||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Enum]] |
المراجعة الحالية بتاريخ 12:37، 9 سبتمبر 2018
تتحقق الدالة equals()
إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معها. استدعاء هذه الدالة يجب أن يكون:
- انعكاسيًا (Reflexive): لكل مرجع
x
لا يساويnull
، يجب أن يعيد استدعاءx.equals(x)
القيمةtrue
. - تماثليًَا (Symmetric): لكل قيمتين مرجعيتين
x
وy
لا تساويانnull
، سيعيد الاستدعاءx.equals(y)
القيمةtrue
إذا، وفقط، إذا أعادتy.equals(x)
القيمةtrue
. - تواتريًا (Transitive): لكل القيم المرجعية
x
وy
وz
التي لا تساويnull
، سيعيد استدعاءx.equals(z)
القيمةtrue
إن أعادتx.equals(y)
وy.equals(z)
كلاهما القيمةtrue
. - متسقًا (Consistent): لكل قيمتين مرجعيتين
x
وy
لا تساويانnull
، سيعيد استدعاء الدالةx.equals(y)
إما القيمةtrue
أو القيمةfalse
دومًا في كل مرة شرط عدم تغيير أي معلومة تستخدمها الدالةequals()
في موازنة الكائنين.
انتبه إلى أنَّ المعامل ==
في أكواد Kotlin سيُترجم إلى استدعاءٍ للدالة equals()
عندما يكون كلا الكائنين المراد الموازنة بينهما لا يساويان القيمة null
.
البنية العامة
fun equals(other: Any?): Boolean
المعاملات
other
الكائن الآخر المراد التحقق من تساويه مع الكائن المعطى.
القيم المعادة
تعاد القيمة true
المنطقية إن كان الكائن other
المُمرّر يساوي الكائن المعطى، أو القيمة false
خلاف ذلك.
أمثلة
إنشاء نسختين من الصنف Enum
واستعمال الدالة equals()
للتحقق من تساوي ثابت من النسخة الأولى مع آخر من النسخة الثانية :
fun main(args: Array<String>) {
val x = ColorEnum.Red
val y = ColorEnum2.Red
print(x.equals(y)) // false
print(x.equals(x)) // true
}
enum class ColorEnum(val colorCode: Int)
{
Red(2),
Blue(11212),
Green(21212),
Orange(212121)
}
enum class ColorEnum2(val colorCode: Int)
{
Red(2),
Blue(11212),
Green(21212),
Orange(212121)
}
انظر أيضًا
- الدالة
compareTo()
بين الكائن الذي استُدعي معها والكائن المُمرّر إليها ثمَّ تعيد القيمة 0 إن كانا متساويين، أو قيمة سالبة إن كان الكائن الأول (أي الذي استُدعي معها) أصغر من الكائن الثاني، أو قيمة موجبة إن كان الكائن الأول أكبر من الكائن الثاني. - الخاصيّة
name
: تمثل اسم الثابت المعرف في الكائنenum
الذي استُدعي معها كما سُمّي أُثناء تعريف هذا الكائن.