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

مصادر