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

من موسوعة حسوب
< Kotlin‏ | Any
مراجعة 17:52، 9 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة Any.hashCode()‎ في لغة Kotlin}}</noinclude> يعيد التابع hashCode()‎ قيمة التكويد (hash code) الخ...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعيد التابع 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: تبين ما إذا كان الكائن الذي استدعاها يساوي كائنًا آخر.

مصادر

  • صفحة التابع hashCode()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.