الفرق بين المراجعتين لصفحة: «Kotlin/Any/hashCode»
مراجعة أولى |
طلا ملخص تعديل |
||
سطر 2: | سطر 2: | ||
يعيد التابع <code>hashCode()</code> قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي عبره، ويحقِّق التابع <code>hashCode()</code> دائمًا الشرطين الآتيين: | يعيد التابع <code>hashCode()</code> قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي عبره، ويحقِّق التابع <code>hashCode()</code> دائمًا الشرطين الآتيين: | ||
*سيعيد نفس العدد الصحيح دائمًا في كل مرة يُستدعى على كائنٍ مُعيَّن شريطة عدم تغيُّر أيّ معلومة يستخدمها [[Kotlin/Any/equals|التابع<code>equals()</code>]] لأجل المقارنة مع الكائن. | *سيعيد نفس العدد الصحيح دائمًا في كل مرة يُستدعى على كائنٍ مُعيَّن شريطة عدم تغيُّر أيّ معلومة يستخدمها [[Kotlin/Any/equals|التابع<code>equals()</code>]] لأجل المقارنة مع الكائن. | ||
*إذا تساوى كائنان بحسب [[Kotlin/Any/equals| | *إذا تساوى كائنان بحسب التابع <code>[[Kotlin/Any/equals|equals()]]</code>، فسينتج نفس العدد الصحيح (المُعبِّر عن الشيفرة hash code) عند استدعاء التابع <code>hashCode()</code> على أيٍّ منهما. | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
سطر 24: | سطر 24: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
*[[Kotlin/Any/equals| | *التابع [[Kotlin/Any/equals|<code>equals()</code>]]<code></code>: يبيّن فيما إذا كان هناك كائنٌ (object) آخر مساوٍ للكائن الحاليّ. | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/hash-code.html التابع Any.hashCode() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/hash-code.html صفحة التابع Any.hashCode() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Method]] |
مراجعة 02:11، 23 مايو 2018
يعيد التابع hashCode()
قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي عبره، ويحقِّق التابع hashCode()
دائمًا الشرطين الآتيين:
- سيعيد نفس العدد الصحيح دائمًا في كل مرة يُستدعى على كائنٍ مُعيَّن شريطة عدم تغيُّر أيّ معلومة يستخدمها التابع
equals()
لأجل المقارنة مع الكائن. - إذا تساوى كائنان بحسب التابع
equals()
، فسينتج نفس العدد الصحيح (المُعبِّر عن الشيفرة hash code) عند استدعاء التابعhashCode()
على أيٍّ منهما.
البنية العامة
open fun hashCode(): Int
يُلاحظ وجود الكلمة المفتاحيّة open هنا وذلك للسماح بإعادة تعريف (override) هذا التابع في الأصناف الفرعيّة (subclasses) للصنف Any (راجع الأصناف والوراثة لمزيد من التفاصيل).
القيم المعادة
قيمةٌ صحيحةٌ من النوع Int
تمثِّل الشيفرة hash code للكائن.
أمثلة
استخدام الدالة hashCode()
تعرِّف الشيفرة الآتية متغيِّرًا من نوع السلاسل النصيّة (String
) ثم تستدعي التابع hashCode()
للحصول على الشيفرة hash code الخاصّة بتلك السلسة النصيّة وطباعتها، ثم تُعرّف متغيّرًا x
وتستدعي التابع كذلك للحصول على الشيفرة hash code له وطباعتها، كما يلي:
fun main(args: Array<String>) {
var a: String = "hsoub"
var hash_a = a.hashCode()
println(" $hash_a") // 99582545
var x = 54
var hash_x = x.hashCode()
println(" $hash_x") //54
}
انظر أيضًا
- التابع
equals()
: يبيّن فيما إذا كان هناك كائنٌ (object) آخر مساوٍ للكائن الحاليّ.