الدالة 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

القيم المعادة

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

مصادر