الدالة Any.hashCode()‎ في لغة Kotlin

من موسوعة حسوب

يعيد التابع hashCode()‎ قيمة التكويد (hash code) الخاص  بالكائن الذي استُدعي عبره. يحقق التابع hashCode()‎ دائمًا الشرطين التاليين:

  • سيعيد نفس العدد الصحيح في كل مرة تُستدعى على كائن معين شريطة عدم تغيير أي معلومة تستخدمها الدالة equals()‎ لأجل المقارنة بالكائن.
  • إذا تساوى كائنان بحسب الدالة equals()‎، فينبغي أن ينتج استدعاء التابع hashCode()‎ على كلٍّ من الكائنين نفس العدد الصحيح.

البنية العامة

open fun hashCode(): Int

يلاحظ استخدام الكلمة open التي تسمح بتعديل هذه الدالة في الأصناف الوارثة.

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

قيمة من النوع Int (عدد صحيح) تمثل تكويد الكائن (hash code).

أمثلة

استخدام الدالة hashCode()‎

تعرف الشيفرة التالية متغيرًا من نوع السلاسل النصية (String) ثم تستخدم التابع hashCode()‎ لاستخراج تكويد تلك السلسة النصية وطباعتها، ثم تُعرّف عددًا x وتفعل معه نفس الشيء:

fun main(args: Array<String>) {
   var a: String = "hsoub"
   var hach_a = a.hashCode()
   println(" $hach_a") // 99582545

   var x = 54
   var hach_x = x.hashCode()
   println(" $hach_x")  //54

}

انظر أيضًا

  • equals()‎: تبين ما إذا كان الكائن الذي استدعاها يساوي كائنًا آخر.

مصادر