الفرق بين المراجعتين لصفحة: «Kotlin/Any/hashCode»

من موسوعة حسوب
< Kotlin‏ | Any
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة Any.hashCode()‎ في لغة Kotlin}}</noinclude> يعيد التابع hashCode()‎ قيمة التكويد (hash code) الخ...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة Any.hashCode()‎ في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة Any.hashCode()‎ في لغة Kotlin}}</noinclude>
يعيد التابع hashCode()‎ قيمة التكويد (hash code) الخاص  بالكائن الذي استُدعي عبره. يحقق التابع hashCode()‎ دائمًا الشرطين التاليين:
يعيد التابع <code>hashCode()</code>‎ قيمة التكويد (hash code) الخاص  بالكائن الذي استُدعي عبره. يحقق التابع <code>hashCode()</code>‎ دائمًا الشرطين التاليين:
* سيعيد نفس العدد الصحيح في كل مرة تُستدعى على كائن معين شريطة عدم تغيير أي معلومة تستخدمها الدالة equals()‎ لأجل المقارنة بالكائن.
* سيعيد نفس العدد الصحيح في كل مرة تُستدعى على كائن معين شريطة عدم تغيير أي معلومة تستخدمها الدالة <code>[[kotlin/equals|equals()]]</code>‎ لأجل المقارنة بالكائن.
* إذا تساوى كائنان بحسب الدالة equals()‎، فينبغي أن ينتج استدعاء التابع hashCode()‎ على كلٍّ من الكائنين نفس العدد الصحيح.
* إذا تساوى كائنان بحسب الدالة <code>[[kotlin/equals|equals()]]</code>‎، فينبغي أن ينتج استدعاء التابع <code>hashCode()</code>‎ على كلٍّ من الكائنين نفس العدد الصحيح.


== البنية العامة ==
== البنية العامة ==
<syntaxhighlight lang="kotlin">
open fun hashCode(): Int
open fun hashCode(): Int
 
</syntaxhighlight>يلاحظ استخدام الكلمة <code>open</code> التي تسمح بتعديل هذه الدالة في الأصناف الوارثة.
يلاحظ استخدام الكلمة open التي تسمح بتعديل هذه الدالة في الأصناف الوارثة.


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


== أمثلة ==
== أمثلة ==


=== استخدام الدالة hashCode()‎ ===
=== استخدام الدالة <code>hashCode()‎</code> ===
تعرف الشيفرة التالية متغيرًا من نوع السلاسل النصية (String) ثم تستخدم التابع hashCode()‎ لاستخراج تكويد تلك السلسة النصية وطباعتها، ثم تُعرّف عددًا x وتفعل معه نفس الشيء:
تعرف الشيفرة التالية متغيرًا من نوع السلاسل النصية (<code>String</code>) ثم تستخدم التابع <code>hashCode()‎</code> لاستخراج تكويد تلك السلسة النصية وطباعتها، ثم تُعرّف عددًا x وتفعل معه نفس الشيء:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
fun main(args: Array<String>) {
   var a: String = "hsoub"
   var a: String = "hsoub"
   var hach_a = a.hashCode()
   var hach_a = a.hashCode()
   println(" $hach_a") // 99582545
   println(" $hach_a") // 99582545


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


}
}
</syntaxhighlight>


== انظر أيضًا ==
== انظر أيضًا ==
* ()equals: تبين ما إذا كان الكائن الذي استدعاها يساوي كائنًا آخر.
* <code>[[kotlin/equals|equals()‎]]</code>: تبين ما إذا كان الكائن الذي استدعاها يساوي كائنًا آخر.


== مصادر ==
== مصادر ==
* صفحة التابع hashCode()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/hash-code.html صفحة التابع hashCode()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Methods]]
[[تصنيف:Kotlin Methods]]

مراجعة 17:59، 9 مايو 2018

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

مصادر