الدالة Enum.equals() في Kotlin
تتحقق الدالة 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الذي استُدعي معها كما سُمّي أُثناء تعريف هذا الكائن.