الفرق بين المراجعتين لصفحة: «Kotlin/Enum/hashCode»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع Enum.hashCode() في لغة Kotlin}}</noinclude> يعيد التابع <code>hashCode()</code> قيمة الشيفرة hash...' |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(4 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE:الدالة <code>Enum.hashCode()</code> في Kotlin}}</noinclude> | ||
تعيد الدالة <code>hashCode()</code> الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا: | |||
* | *تعيد نفس العدد الصحيح دائمًا في كل مرة تستدعى فيها مع الكائن نفسه شريطة عدم تغيُّر أيّ معلومة تستخدمها الدالة [[Kotlin/Enum/equals|<code>equals()</code>]] عند موازنة هذا الكائن مع غيره. | ||
*إذا تساوى كائنان بحسب | *إذا تساوى كائنان بحسب الدالة <code>[[Kotlin/Enum/equals|equals()]]</code>، فيجب أن تعيد الدالة <code>hashCode()</code> شيفرة hash نفسها لكلٍّ منها. | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
open fun hashCode(): Int | open fun hashCode(): Int | ||
</syntaxhighlight> | </syntaxhighlight>وجود الكلمة المفتاحيّة <code>open</code> هنا يدل على السماح بإعادة تعريف (override) هذا التابع في الأصناف الفرعيّة (subclasses) للصنف <code>[[Kotlin/Enum|Enum]]</code> (راجع [[Kotlin/classes|الأصناف والوراثة]] لمزيد من التفاصيل). | ||
==القيم المعادة== | ==القيم المعادة== | ||
قيمةٌ صحيحةٌ | تعاد قيمةٌ [[Kotlin/Int|عددية صحيحةٌ]] تمثِّل الشيفرة hash للكائن المعطى. | ||
==أمثلة== | ==أمثلة== | ||
استعمال الدالة <code>hashCode()</code> مع أحد ثوابت الصنف <code>[[Kotlin/Enum|Enum]]</code> بعد إنشاء نسخة منه:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val x = ColorEnum.Red | |||
print(x.hashCode()) // 523429237 | |||
} | |||
enum class ColorEnum(val colorCode: Int) | |||
{ | |||
Red(2), | |||
Blue(11212), | |||
Green(21212), | |||
Orange(212121) | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* | *الدالة [[Kotlin/Enum/equals|<code>equals()</code>]]: تتحقق إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معها. | ||
*الدالة [[Kotlin/Enum/toString|<code>toString()</code>]]: تحول الكائن الذي استُدعي معها إلى [[Kotlin/String|سلسلة نصية]] (String). | |||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/- | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/hash-code.html صفحة الدالة Enum.hashCode() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Enum]] |
المراجعة الحالية بتاريخ 12:33، 9 سبتمبر 2018
تعيد الدالة hashCode()
الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا:
- تعيد نفس العدد الصحيح دائمًا في كل مرة تستدعى فيها مع الكائن نفسه شريطة عدم تغيُّر أيّ معلومة تستخدمها الدالة
equals()
عند موازنة هذا الكائن مع غيره. - إذا تساوى كائنان بحسب الدالة
equals()
، فيجب أن تعيد الدالةhashCode()
شيفرة hash نفسها لكلٍّ منها.
البنية العامة
open fun hashCode(): Int
وجود الكلمة المفتاحيّة open
هنا يدل على السماح بإعادة تعريف (override) هذا التابع في الأصناف الفرعيّة (subclasses) للصنف Enum
(راجع الأصناف والوراثة لمزيد من التفاصيل).
القيم المعادة
تعاد قيمةٌ عددية صحيحةٌ تمثِّل الشيفرة hash للكائن المعطى.
أمثلة
استعمال الدالة hashCode()
مع أحد ثوابت الصنف Enum
بعد إنشاء نسخة منه:
fun main(args: Array<String>) {
val x = ColorEnum.Red
print(x.hashCode()) // 523429237
}
enum class ColorEnum(val colorCode: Int)
{
Red(2),
Blue(11212),
Green(21212),
Orange(212121)
}
انظر أيضًا
- الدالة
equals()
: تتحقق إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعي معها. - الدالة
toString()
: تحول الكائن الذي استُدعي معها إلى سلسلة نصية (String).