الفرق بين المراجعتين لصفحة: «Kotlin/Any/equals»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع Any.equals() في لغة Kotlin}}</noinclude> تبين الدالة equals() إذا ما كان الكائن المُمرّ...' |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(7 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: | <noinclude>{{DISPLAYTITLE: الدالة <code>Any.equals()</code> في Kotlin}}</noinclude> | ||
تتحقق الدالة <code>equals()</code> إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معه. وأيُّ تعريف لاستخدام هذه الدالة يجب أن يكون: | |||
* انعكاسيًا (Reflexive): لكل مرجع x لا يساوي | * انعكاسيًا (Reflexive): لكل مرجع <code>x</code> لا يساوي <code>null</code>، يجب أن تُعيد العبارة <code>x.equals(x)</code> القيمة <code>true</code>. | ||
* تماثليًَا (Symmetric): لكل قيمتين مرجعيتين x و y لا تساويان | * تماثليًَا (Symmetric): لكل قيمتين مرجعيتين <code>x</code> و <code>y</code> لا تساويان <code>null</code>، ستعيد العبارة <code>x.equals (y)</code> القيمة <code>true</code> إذا وفقط إذا أعادت العبارة <code>y.equals (x)</code> القيمة <code>true</code>. | ||
* تواتريًا (Transitive): لكل القيم المرجعية x و y و z التي | * تواتريًا (Transitive): لكل القيم المرجعية <code>x</code> و <code>y</code> و <code>z</code> التي لا تساوي <code>null</code>، ستعيد العبارة <code>x.equals (z)</code> القيمة <code>true</code> إن كانت العبارتان <code>x.equals (y)</code> و <code>y.equals (z)</code> تعيدان القيمة <code>true</code> أيضًا. | ||
* متسقًا (Consistent): لكل قيمتين مرجعيتين x و y لا تساويان | * متسقًا (Consistent): لكل قيمتين مرجعيتين <code>x</code> و <code>y</code> لا تساويان <code>null</code>، سيعيد استدعاء الدالة <code>x.equals (y)</code> دائمًا إحدى القيمتين <code>true</code> أو <code>false</code> شريطة عدم تغيير أي معلومة تستخدمها الدالة <code>equals()</code> لأجل مقارنة الكائنين. | ||
تذكر | تذكر أنَّ العامل <code>==</code> في أكواد Kotlin سيُترجم إلى استدعاءٍ للدالة <code>equals()</code> عندما يكون كلا الكائنين المُقارَنَين مخالفين للقيمة <code>null</code>. | ||
== البنية العامة == | == البنية العامة == | ||
<syntaxhighlight lang="kotlin"> | |||
open operator fun equals(other: Any?): Boolean | open operator fun equals(other: Any?): Boolean | ||
</syntaxhighlight>يُلاحظ وجود الكلمة المفتاحيَّة <code>operator</code> للدلالة على أنّ هذه الدالة مرتبط بمعامل الفهرسة المذكور سابقً، والكلمة <code>open</code> التي تسمح بتعديل هذه الدالة في الأصناف الوارثة. | |||
== المعاملات == | |||
=== <code>other</code> === | |||
الكائن المراد التحقق من تساويه مع الكائن المعطى. | |||
== القيم المعادة == | == القيم المعادة == | ||
true إن كان الكائن المُمرّر للدالة يساوي الكائن الذي استدعيت عبره، أو false خلاف ذلك. | القيمة المنطقية <code>true</code> إن كان الكائن المُمرّر للدالة يساوي الكائن الذي استدعيت عبره، أو <code>false</code> خلاف ذلك. | ||
== أمثلة == | == أمثلة == | ||
تُعرّف الشيفرة الآتية سلستين نصيتين <code>a</code> و <code>b</code> ثم تستدعي الدالة <code>equals()</code> عبر الكائن <code>a</code> لموازنته مع <code>b</code>، ثم تستخدم التعليمة الشرطية <code>if</code> لطباعة النتيجة:<syntaxhighlight lang="kotlin"> | |||
تُعرّف الشيفرة الآتية سلستين نصيتين a و b ثم تستدعي الدالة equals() عبر الكائن a | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
var a: String = "hsoub corp" | |||
var b: String = "hsoub " + "corp" | |||
if(a.equals(b)){ | |||
println("'$a' = '$b'") | |||
} else { | |||
println("'$a' != '$b'") | |||
} | |||
} | } | ||
النتيجة المطبوعة هي: | </syntaxhighlight>النتيجة المطبوعة هي:<syntaxhighlight lang="kotlin"> | ||
'hsoub corp' = 'hsoub corp' | 'hsoub corp' = 'hsoub corp' | ||
</syntaxhighlight> | |||
== انظر أيضًا == | == انظر أيضًا == | ||
* ()hashCode: تعيد التكويد (hash code) الخاص بالكائن. | * الدالة <code>[[Kotlin/Any/hashCode|()hashCode]]</code>: تعيد التكويد (hash code) الخاص بالكائن. | ||
* ()toString: تعيد تمثيلًا نصيًا للكائن. | * الدالة <code>[[Kotlin/Any/toString|()toString]]</code>: تعيد تمثيلًا نصيًا للكائن. | ||
== مصادر == | == مصادر == | ||
* صفحة الدالة equals() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin. | * [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/equals.html صفحة الدالة equals() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Any]] |
المراجعة الحالية بتاريخ 06:33، 8 سبتمبر 2018
تتحقق الدالة equals()
إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معه. وأيُّ تعريف لاستخدام هذه الدالة يجب أن يكون:
- انعكاسيًا (Reflexive): لكل مرجع
x
لا يساويnull
، يجب أن تُعيد العبارةx.equals(x)
القيمةtrue
. - تماثليًَا (Symmetric): لكل قيمتين مرجعيتين
x
وy
لا تساويانnull
، ستعيد العبارةx.equals (y)
القيمةtrue
إذا وفقط إذا أعادت العبارةy.equals (x)
القيمةtrue
. - تواتريًا (Transitive): لكل القيم المرجعية
x
وy
وz
التي لا تساويnull
، ستعيد العبارةx.equals (z)
القيمةtrue
إن كانت العبارتانx.equals (y)
وy.equals (z)
تعيدان القيمةtrue
أيضًا. - متسقًا (Consistent): لكل قيمتين مرجعيتين
x
وy
لا تساويانnull
، سيعيد استدعاء الدالةx.equals (y)
دائمًا إحدى القيمتينtrue
أوfalse
شريطة عدم تغيير أي معلومة تستخدمها الدالةequals()
لأجل مقارنة الكائنين.
تذكر أنَّ العامل ==
في أكواد Kotlin سيُترجم إلى استدعاءٍ للدالة equals()
عندما يكون كلا الكائنين المُقارَنَين مخالفين للقيمة null
.
البنية العامة
open operator fun equals(other: Any?): Boolean
يُلاحظ وجود الكلمة المفتاحيَّة operator
للدلالة على أنّ هذه الدالة مرتبط بمعامل الفهرسة المذكور سابقً، والكلمة open
التي تسمح بتعديل هذه الدالة في الأصناف الوارثة.
المعاملات
other
الكائن المراد التحقق من تساويه مع الكائن المعطى.
القيم المعادة
القيمة المنطقية true
إن كان الكائن المُمرّر للدالة يساوي الكائن الذي استدعيت عبره، أو false
خلاف ذلك.
أمثلة
تُعرّف الشيفرة الآتية سلستين نصيتين a
و b
ثم تستدعي الدالة equals()
عبر الكائن a
لموازنته مع b
، ثم تستخدم التعليمة الشرطية if
لطباعة النتيجة:
fun main(args: Array<String>) {
var a: String = "hsoub corp"
var b: String = "hsoub " + "corp"
if(a.equals(b)){
println("'$a' = '$b'")
} else {
println("'$a' != '$b'")
}
}
النتيجة المطبوعة هي:
'hsoub corp' = 'hsoub corp'
انظر أيضًا
- الدالة
()hashCode
: تعيد التكويد (hash code) الخاص بالكائن. - الدالة
()toString
: تعيد تمثيلًا نصيًا للكائن.