الفرق بين المراجعتين لصفحة: «Kotlin/Any/hashCode»
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE:الدالة <code>Any.hashCode()</code> في Kotlin}}</noinclude> | ||
تعيد الدالة <code>hashCode()</code> الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا: | تعيد الدالة <code>hashCode()</code> الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا: | ||
*تعيد نفس العدد الصحيح دائمًا في كل مرة تستدعى فيها مع الكائن نفسه شريطة عدم تغيُّر أيّ معلومة تستخدمها الدالة [[Kotlin/Any/equals|<code>equals()</code>]] عند موازنة هذا الكائن مع غيره. | *تعيد نفس العدد الصحيح دائمًا في كل مرة تستدعى فيها مع الكائن نفسه شريطة عدم تغيُّر أيّ معلومة تستخدمها الدالة [[Kotlin/Any/equals|<code>equals()</code>]] عند موازنة هذا الكائن مع غيره. | ||
سطر 6: | سطر 6: | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
open fun hashCode(): Int | open fun hashCode(): Int | ||
</syntaxhighlight>وجود الكلمة المفتاحيّة <code>open</code> هنا يدل على السماح بإعادة تعريف (override) | </syntaxhighlight>وجود الكلمة المفتاحيّة <code>open</code> هنا يدل على السماح بإعادة تعريف (override) هذه الدالة في الأصناف الفرعيّة (subclasses) للصنف <code>[[Kotlin/Enum|Enum]]</code> (راجع [[Kotlin/classes|الأصناف والوراثة]] لمزيد من التفاصيل). | ||
==القيم المعادة== | ==القيم المعادة== | ||
تعاد قيمةٌ [[Kotlin/Int|عددية صحيحةٌ]] تمثِّل الشيفرة hash للكائن المعطى. | تعاد قيمةٌ [[Kotlin/Int|عددية صحيحةٌ]] تمثِّل الشيفرة hash للكائن المعطى. | ||
==أمثلة== | ==أمثلة== | ||
تعرِّف الشيفرة الآتية متغيِّرًا من نوع السلاسل النصيّة (String) ثم تستدعي | تعرِّف الشيفرة الآتية متغيِّرًا من نوع السلاسل النصيّة (String) ثم تستدعي الدالة <code>hashCode()</code> للحصول على الشيفرة hash الخاصّة بتلك السلسة النصيّة وطباعتها، ثم تُعرّف متغيّرًا <code>x</code> وتستدعي الدالة كذلك للحصول على الشيفرة hash له وطباعتها، كما يلي:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
var a: String = "hsoub" | var a: String = "hsoub" | ||
سطر 23: | سطر 23: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* | *الدالة <code>[[Kotlin/Any/equals|equals()]]</code>: تتحقق فيما إذا كان هناك كائنٌ (object) آخر مساوٍ للكائن الحاليّ. | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/hash-code.html صفحة | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/hash-code.html صفحة الدالة Any.hashCode() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Any]] |
المراجعة الحالية بتاريخ 05:11، 8 سبتمبر 2018
تعيد الدالة hashCode()
الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا:
- تعيد نفس العدد الصحيح دائمًا في كل مرة تستدعى فيها مع الكائن نفسه شريطة عدم تغيُّر أيّ معلومة تستخدمها الدالة
equals()
عند موازنة هذا الكائن مع غيره. - إذا تساوى كائنان بحسب الدالة
equals()
، فيجب أن تعيد الدالةhashCode()
شيفرة hash نفسها لكلٍّ منها.
البنية العامة
open fun hashCode(): Int
وجود الكلمة المفتاحيّة open
هنا يدل على السماح بإعادة تعريف (override) هذه الدالة في الأصناف الفرعيّة (subclasses) للصنف Enum
(راجع الأصناف والوراثة لمزيد من التفاصيل).
القيم المعادة
تعاد قيمةٌ عددية صحيحةٌ تمثِّل الشيفرة hash للكائن المعطى.
أمثلة
تعرِّف الشيفرة الآتية متغيِّرًا من نوع السلاسل النصيّة (String) ثم تستدعي الدالة hashCode()
للحصول على الشيفرة hash الخاصّة بتلك السلسة النصيّة وطباعتها، ثم تُعرّف متغيّرًا x
وتستدعي الدالة كذلك للحصول على الشيفرة hash له وطباعتها، كما يلي:
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) آخر مساوٍ للكائن الحاليّ.