الفرق بين المراجعتين ل"Kotlin/text/equals"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع text.equals()‎ في لغة Kotlin}}</noinclude> تبين الدالة <code>equals()</code>‎ إذا ما كان الكائن...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: التابع text.equals()‎ في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: التابع text.equals()‎ في لغة Kotlin}}</noinclude>
تبين الدالة <code>equals()</code>‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت عبره. وأيُّ تعريف لاستخدام (Implementations) هذه الدالة يجب أن يكون:
+
تعيد الدالة <code>equals()</code>‎ القيمة <code>true</code> في حال كان [[Kotlin/Char/index|الحرف]] أو [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها مساوية [[Kotlin/Char/index|للحرف]] أو [[Kotlin/String|السلسلة النصية]] المُمرّرة إليها. في حال تمرير الوسيط <code>ignoreCase</code> وإعطائه القيمة <code>true</code> فإنّ الدالة لن تفرق بين الحروف الصغيرة والكبيرة. القيمة الابتدائية للوسيط <code>ignoreCase</code> هي <code>false</code>.
* انعكاسيًا (Reflexive): لكل مرجع <code>x</code> لا يساوي <code>null</code>، يجب أن تُعيد العبارة <code>x.equals(x)‎</code> القيمة <code>true</code>.
 
* تماثليًَا (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):  لكل القيم المرجعية <code>x</code> و <code>y</code> و <code>z</code> التي تخالف <code>null</code>، إن كانت العبارتان <code>x.equals (y)‎</code> و <code>y.equals (z)‎</code> تعيدان القيمة <code>true</code> فستعيد العبارة  <code>x.equals (z)</code>‎ القيمة  <code>true</code> كذلك.
 
* متسقًا (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">
 
<syntaxhighlight lang="kotlin">
open operator fun equals(other: Any?): Boolean
+
actual fun String?.equals(
</syntaxhighlight>ويُلاحظ وجود الكلمة المفتاحية <code>operator</code> للدلالة على أنّ هذا التابع مرتبط بمعامل الفهرسة المذكور سابقًا. وكذلك الكلمة <code>open</code> التي تسمح بتعديل هذه الدالة في الأصناف الوارثة.
+
    other: String?,
 +
    ignoreCase: Boolean = false
 +
): Boolean
 +
</syntaxhighlight>تعيد الدالة <code>equals()</code>‎ القيمة <code>true</code> في حال كانت [[Kotlin/String|السلسلة النصية]] التي استُدعيت عبرها مساوية [[Kotlin/String|للسلسلة النصية]] المُمرّرة إليها. في حال تمرير الوسيط <code>ignoreCase</code> وإعطائه القيمة <code>true</code> فإنّ الدالة لن تفرق بين الحروف الصغيرة والكبيرة. القيمة الابتدائية للوسيط <code>ignoreCase</code>  هي <code>false</code>.<syntaxhighlight lang="kotlin">
 +
fun Char.equals(
 +
    other: Char,
 +
    ignoreCase: Boolean = false
 +
): Boolean
 +
</syntaxhighlight>تعيد الدالة <code>equals()</code>‎ القيمة <code>true</code> في حال كان [[Kotlin/Char/index|الحرف]]  الذي استُدعيت عبره مساويًا [[Kotlin/Char/index|للحرف]] المُمرّر إليها. في حال تمرير الوسيط <code>ignoreCase</code> وإعطائه القيمة <code>true</code> فإنّ الدالة لن تفرق بين الحروف الصغيرة والكبيرة. القيمة الابتدائية للوسيط <code>ignoreCase</code>  هي <code>false</code>.
  
 
== القيم المعادة ==
 
== القيم المعادة ==
<code>true</code> إن كان الكائن المُمرّر للدالة يساوي الكائن الذي استدعيت عبره، أو <code>false</code> خلاف ذلك.
+
قيمة منطقية.
  
 
== أمثلة ==
 
== أمثلة ==
  
 
=== استخدام الدالة <code>equals()‎</code> مع السلاسل النصية ===
 
=== استخدام الدالة <code>equals()‎</code> مع السلاسل النصية ===
تُعرّف الشيفرة الآتية سلستين نصيتين <code>a</code> و <code>b</code> ثم تستدعي الدالة <code>equals()‎</code> عبر الكائن <code>a</code> لمقارنته مع <code>b</code>، ثم تستخدم التعليمة الشرطية <code>if</code> لطباعة نتيجة المقارنة:<syntaxhighlight lang="kotlin">
+
تُعرّف الشيفرة الآتية [[Kotlin/String|سلستين نصيتين]] <code>a</code> و <code>b</code> ثم تستدعي الدالة <code>equals()‎</code> عبر <code>a</code> لمقارنتها مع <code>b</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
+
fun main(args: Array<String>) {  
   var a: String = "hsoub corp"
+
    val a = "hsoub"
   var b: String = "hsoub " + "corp"   
+
    val b = "hsouB"
 
+
   
   if(a.equals(b)){
+
print(a.equals(b)) // false
       println("'$a' = '$b'")
+
}
 
+
</syntaxhighlight>
  } else {
+
=== استخدام الدالة <code>equals()‎</code> مع السلاسل النصية مع تمرير الوسيط <code>ignoreCase</code>  ===
       println("'$a' != '$b'")
+
تُعرّف الشيفرة الآتية [[Kotlin/String|سلستين نصيتين]] <code>a</code> و <code>b</code> ثم تستدعي الدالة <code>equals()‎</code> عبر <code>a</code> لمقارنتها مع <code>b</code>،مع تمرير القيمة <code>true</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
   }
+
fun main(args: Array<String>) {   
 +
    val a = "hsoub"
 +
    val b = "hsouB" 
 +
   
 +
print(a.equals(b, true)) // true
 
}
 
}
 
 
</syntaxhighlight>النتيجة المطبوعة هي:<syntaxhighlight lang="kotlin">
 
'hsoub corp' = 'hsoub corp'
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* <code>[[Kotlin/Any/hashCode|()hashCode]]</code>: تعيد التكويد (hash code) الخاص بالكائن.
+
* <code>[[Kotlin/text/category|category]]</code>: تعيد <code>category</code> قيمة تبيّن الفئة العامة للحرف.
* <code>[[Kotlin/Any/toString|()toString]]</code>: تعيد تمثيلًا نصيًا للكائن.
 
  
 
== مصادر ==
 
== مصادر ==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/equals.html صفحة الدالة equals()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/equals.html صفحة الدالة equals()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Method]]
 
[[تصنيف:Kotlin Method]]

مراجعة 17:29، 1 يوليو 2018

تعيد الدالة equals()‎ القيمة true في حال كان الحرف أو السلسلة النصية التي استُدعيت عبرها مساوية للحرف أو السلسلة النصية المُمرّرة إليها. في حال تمرير الوسيط ignoreCase وإعطائه القيمة true فإنّ الدالة لن تفرق بين الحروف الصغيرة والكبيرة. القيمة الابتدائية للوسيط ignoreCase هي false.

البنية العامة

actual fun String?.equals(
    other: String?, 
    ignoreCase: Boolean = false
): Boolean

تعيد الدالة equals()‎ القيمة true في حال كانت السلسلة النصية التي استُدعيت عبرها مساوية للسلسلة النصية المُمرّرة إليها. في حال تمرير الوسيط ignoreCase وإعطائه القيمة true فإنّ الدالة لن تفرق بين الحروف الصغيرة والكبيرة. القيمة الابتدائية للوسيط ignoreCase هي false.

fun Char.equals(
    other: Char, 
    ignoreCase: Boolean = false
): Boolean

تعيد الدالة equals()‎ القيمة true في حال كان الحرف الذي استُدعيت عبره مساويًا للحرف المُمرّر إليها. في حال تمرير الوسيط ignoreCase وإعطائه القيمة true فإنّ الدالة لن تفرق بين الحروف الصغيرة والكبيرة. القيمة الابتدائية للوسيط ignoreCase هي false.

القيم المعادة

قيمة منطقية.

أمثلة

استخدام الدالة equals()‎ مع السلاسل النصية

تُعرّف الشيفرة الآتية سلستين نصيتين a و b ثم تستدعي الدالة equals()‎ عبر a لمقارنتها مع b، ثم تطبع الناتج:

fun main(args: Array<String>) {    
    val a = "hsoub"
    val b = "hsouB"  
    
	print(a.equals(b)) // false
}

استخدام الدالة equals()‎ مع السلاسل النصية مع تمرير الوسيط ignoreCase

تُعرّف الشيفرة الآتية سلستين نصيتين a و b ثم تستدعي الدالة equals()‎ عبر a لمقارنتها مع b،مع تمرير القيمة true، ثم تطبع الناتج:

fun main(args: Array<String>) {    
    val a = "hsoub"
    val b = "hsouB"   
    
	print(a.equals(b, true)) // true
}

انظر أيضًا

  • category: تعيد category قيمة تبيّن الفئة العامة للحرف.

مصادر