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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع text.equals()‎ في لغة Kotlin}}</noinclude> تبين الدالة <code>equals()</code>‎ إذا ما كان الكائن...')
 
ط
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع text.equals()‎ في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:الدالة <code>text.equals()‎</code> في Kotlin}}</noinclude>
تبين الدالة <code>equals()</code>‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت عبره. وأيُّ تعريف لاستخدام (Implementations) هذه الدالة يجب أن يكون:
+
تتحقق الدالة <code>equals()</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>‎ إن كانت [[Kotlin/String|السلسلة النصية]] <code>String</code> التي استُدعيت معها مساويةً [[Kotlin/String|للسلسلة النصية]] <code>other</code> المُمرّرة إليها. إن مرِّر الوسيط <code>ignoreCase</code> وكانت قيمته <code>true</code>، فستُهمَل حالة الحروف (سواءً كبيرة أو صغيرة) أثناء الموازنة بينها. قيمة هذا الوسيط الافتراضية هي <code>false</code> أي أخذُ حالة الحروف بالحسبان.<syntaxhighlight lang="kotlin">
 +
fun Char.equals(
 +
    other: Char,
 +
    ignoreCase: Boolean = false
 +
): Boolean
 +
</syntaxhighlight>تتحقق الدالة <code>equals()</code>‎ إن كان [[Kotlin/Char|المحرف]] <code>Char</code> الذي استُدعي معها مساويًا [[Kotlin/Char|للمحرف]] <code>other</code> المُمرّر إليها. إن مرِّر الوسيط <code>ignoreCase</code> وكانت قيمته <code>true</code>، فستُهمَل حالة الحروف (سواءً كبيرة أو صغيرة) أثناء الموازنة بينها. قيمة هذا الوسيط الافتراضية هي <code>false</code> أي أخذ حالة الحروف بالحسبان.
  
== القيم المعادة ==
+
== المعاملات ==
<code>true</code> إن كان الكائن المُمرّر للدالة يساوي الكائن الذي استدعيت عبره، أو <code>false</code> خلاف ذلك.
 
  
== أمثلة ==
+
=== <code>other</code> ===
 +
السلسلة النصية أو المحرف الآخر الذي يراد التحقق من تساويه.
  
=== استخدام الدالة <code>equals()‎</code> مع السلاسل النصية ===
+
=== <code>ignoreCase</code> ===
تُعرّف الشيفرة الآتية سلستين نصيتين <code>a</code> و <code>b</code> ثم تستدعي الدالة <code>equals()‎</code> عبر الكائن <code>a</code> لمقارنته مع <code>b</code>، ثم تستخدم التعليمة الشرطية <code>if</code> لطباعة نتيجة المقارنة:<syntaxhighlight lang="kotlin">
+
قيمة منطقية تحدد إن كان يراد تجاهل حالة المحارف أثناء إجراء عملية الموازنة أم لا. القيمة الافتراضية هي: <code>false</code> (أي أخذ حالة المحارف بالحسبان).
fun main(args: Array<String>) {
 
   var a: String = "hsoub corp"
 
   var b: String = "hsoub " + "corp"   
 
  
   if(a.equals(b)){
+
==القيم المعادة==
       println("'$a' = '$b'")
+
تعاد القيمة <code>true</code> المنطقية إن تساوى المحرفين أو السلستين النصيتين مع بعضهما بعضًا، أو القيمة <code>false</code> خلاف ذلك.
 
+
==أمثلة==
  } else {
+
استعمال الدالة <code>equals()‎</code> للتحقق من تساوي سلسلتين نصيتين مع بعضهما بعضًا مع أخذ حالة الحروف بالحسبان:<syntaxhighlight lang="kotlin">
       println("'$a' != '$b'")
+
fun main(args: Array<String>) {  
   }
+
    val a = "hsoub"
 +
    val b = "Hsoub"
 +
   
 +
    print(a.equals(b)) // false
 +
}
 +
</syntaxhighlight>استعمال الدالة <code>equals()‎</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>
 +
==انظر أيضًا==
 +
*الدالة [[Kotlin/text/isDefined|<code>isDefined()</code>‎]]: تتحقق إن كان [[Kotlin/Char|المحرف]] (Unicode code point) الذي استٌدعيت معها مُعرّفًا في الترميز الموحَّد (Unicode) أم لا.
 +
*الدالة [[Kotlin/text/isDigit|<code>isDigit()</code>‎]]: تتحقق إن كان [[Kotlin/Char|المحرف]] الذي استٌدعيت معه رقمًا أم لا.
 +
*الدالة [[Kotlin/text/isHighSurrogate|<code>isHighSurrogate()</code>‎]]: تتحقق إن كان [[Kotlin/Char|المحرف]] الذي استٌدعي معها بديلًا علويًا لعدد بتات الترميز الموحد (Unicode high-surrogate code unit).
 +
*الدالة [[Kotlin/text/isISOControl|<code>isISOControl()</code>‎]]: تتحقق إن كان [[Kotlin/Char|المحرف]] الذي استٌدعي معها هو أحد محارف تحكمISO ‎‎‏ ‎ISO control character)‎‎‎).
 +
*الدالة [[Kotlin/text/isIdentifierIgnorable|<code>isIdentifierIgnorable()</code>‎]]: تتحقق إن كان [[Kotlin/Char|المحرف]] الذي استٌدعي معها محرفًا قابلًا للإهمال (ignorable character) في مُعرِّفات جافا (Java identifier) أو معرِّفات الترميز الموحَّد (Unicode identifier).
 +
*الدالة [[Kotlin/text/isJavaIdentifierPart|<code>isJavaIdentifierPart()</code>‎]]: تتحقق إن كان من المحتمل أن يكون [[Kotlin/Char|المحرف]] الذي استٌدعي معها جزءًا من مُعرِّف جافا (Java identifier) وليس المحرف الأول من المُعرّف.
 +
*الدالة [[Kotlin/text/isJavaIdentifierStart|<code>isJavaIdentifierStart()</code>‎]]: تتحقق إن كان يسمح أن يكون [[Kotlin/Char|المحرف]] الذي استٌدعي معها المحرف الأول من مُعرِّف جافا (Java identifier).
  
== انظر أيضًا ==
+
* الدالة <nowiki/>[[Kotlin/text/isLetter|<code>isLetter()</code>‎]]: تتحقق إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا.
* <code>[[Kotlin/Any/hashCode|()hashCode]]</code>: تعيد التكويد (hash code) الخاص بالكائن.
+
* الدالة <nowiki/>[[Kotlin/text/isLetterOrDigit|<code>isLetterOrDigit()</code>‎]]: تتحقق إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا أو رقمًا.
* <code>[[Kotlin/Any/toString|()toString]]</code>: تعيد تمثيلًا نصيًا للكائن.
+
* الدالة <nowiki/>[[Kotlin/text/isLowSurrogate|<code>isLowSurrogate()</code>‎]]: تتحقق إن كان المحرف الذي استٌدعي معها بديلًا سفليًّا لعدد بتات الترميز الموحد (Unicode low-surrogate code unit).
 
+
* الدالة <nowiki/>[[Kotlin/text/isLowerCase|<code>isLowerCase()</code>‎]]: تتحقق إن كان الحرف الذي استٌدعي معها حرفًا صغيرًا (lower case).
== مصادر ==
+
* الدالة <nowiki/>[[Kotlin/text/isSurrogate|<code>isSurrogate()</code>‎]]: تتحقق إن كان المحرف الذي استٌدعي معها بديلًا لعدد بتات الترميز الموحد (Unicode surrogate code unit).
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/equals.html صفحة الدالة equals()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* الدالة <nowiki/>[[Kotlin/text/isTitleCase|<code>isTitleCase()</code>‎]]: تتحقق إن كان المحرف الذي استٌدعي معها محرفًا عُنوانيًا (titlecase). تتكون هذه المحارف عادةً من محرفين ملتصقين، مثل <code>'Dž'</code> أو <code>'Nj'</code>، إذ يعاملان وكأنهما محرف واحد فقط.
 +
* الدالة <nowiki/>[[Kotlin/text/isUpperCase|<code>isUpperCase()</code>‎]]: تتحقق إن كان الحرف الذي استٌدعي معها حرفًا كبيرًا (upper case).
 +
* الدالة <nowiki/>[[Kotlin/text/isWhitespace|<code>isWhitespace()</code>‎]]: تتحقق إن كان المحرف الذي استٌدعي معها هو مسافة بيضاء (whitespace).
 +
==مصادر==
 +
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/equals.html صفحة الدالة equals()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Method]]
+
[[تصنيف:Kotlin Function]]
 +
[[تصنيف:Kotlin Text]]

المراجعة الحالية بتاريخ 04:42، 9 سبتمبر 2018

تتحقق الدالة equals()‎ من تساوي محرفين أو سلسلتين نصيتين مع بعضهما بعضًا.

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

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

تتحقق الدالة equals()‎ إن كانت السلسلة النصية String التي استُدعيت معها مساويةً للسلسلة النصية other المُمرّرة إليها. إن مرِّر الوسيط ignoreCase وكانت قيمته true، فستُهمَل حالة الحروف (سواءً كبيرة أو صغيرة) أثناء الموازنة بينها. قيمة هذا الوسيط الافتراضية هي false أي أخذُ حالة الحروف بالحسبان.

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

تتحقق الدالة equals()‎ إن كان المحرف Char الذي استُدعي معها مساويًا للمحرف other المُمرّر إليها. إن مرِّر الوسيط ignoreCase وكانت قيمته true، فستُهمَل حالة الحروف (سواءً كبيرة أو صغيرة) أثناء الموازنة بينها. قيمة هذا الوسيط الافتراضية هي false أي أخذ حالة الحروف بالحسبان.

المعاملات

other

السلسلة النصية أو المحرف الآخر الذي يراد التحقق من تساويه.

ignoreCase

قيمة منطقية تحدد إن كان يراد تجاهل حالة المحارف أثناء إجراء عملية الموازنة أم لا. القيمة الافتراضية هي: false (أي أخذ حالة المحارف بالحسبان).

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

تعاد القيمة true المنطقية إن تساوى المحرفين أو السلستين النصيتين مع بعضهما بعضًا، أو القيمة false خلاف ذلك.

أمثلة

استعمال الدالة equals()‎ للتحقق من تساوي سلسلتين نصيتين مع بعضهما بعضًا مع أخذ حالة الحروف بالحسبان:

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

استعمال الدالة equals()‎ للتحقق من تساوي سلسلتين نصيتين مع بعضهما بعضًا مع إهمال حالة الحروف:

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

انظر أيضًا

  • الدالة isDefined(): تتحقق إن كان المحرف (Unicode code point) الذي استٌدعيت معها مُعرّفًا في الترميز الموحَّد (Unicode) أم لا.
  • الدالة isDigit(): تتحقق إن كان المحرف الذي استٌدعيت معه رقمًا أم لا.
  • الدالة isHighSurrogate(): تتحقق إن كان المحرف الذي استٌدعي معها بديلًا علويًا لعدد بتات الترميز الموحد (Unicode high-surrogate code unit).
  • الدالة isISOControl(): تتحقق إن كان المحرف الذي استٌدعي معها هو أحد محارف تحكمISO ‎‎‏ ‎ISO control character)‎‎‎).
  • الدالة isIdentifierIgnorable(): تتحقق إن كان المحرف الذي استٌدعي معها محرفًا قابلًا للإهمال (ignorable character) في مُعرِّفات جافا (Java identifier) أو معرِّفات الترميز الموحَّد (Unicode identifier).
  • الدالة isJavaIdentifierPart(): تتحقق إن كان من المحتمل أن يكون المحرف الذي استٌدعي معها جزءًا من مُعرِّف جافا (Java identifier) وليس المحرف الأول من المُعرّف.
  • الدالة isJavaIdentifierStart(): تتحقق إن كان يسمح أن يكون المحرف الذي استٌدعي معها المحرف الأول من مُعرِّف جافا (Java identifier).
  • الدالة isLetter(): تتحقق إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا.
  • الدالة isLetterOrDigit(): تتحقق إن كان المحرف (character) الذي استٌدعي معها حرفًا أبجديًا أو رقمًا.
  • الدالة isLowSurrogate(): تتحقق إن كان المحرف الذي استٌدعي معها بديلًا سفليًّا لعدد بتات الترميز الموحد (Unicode low-surrogate code unit).
  • الدالة isLowerCase(): تتحقق إن كان الحرف الذي استٌدعي معها حرفًا صغيرًا (lower case).
  • الدالة isSurrogate(): تتحقق إن كان المحرف الذي استٌدعي معها بديلًا لعدد بتات الترميز الموحد (Unicode surrogate code unit).
  • الدالة isTitleCase(): تتحقق إن كان المحرف الذي استٌدعي معها محرفًا عُنوانيًا (titlecase). تتكون هذه المحارف عادةً من محرفين ملتصقين، مثل 'Dž' أو 'Nj'، إذ يعاملان وكأنهما محرف واحد فقط.
  • الدالة isUpperCase(): تتحقق إن كان الحرف الذي استٌدعي معها حرفًا كبيرًا (upper case).
  • الدالة isWhitespace(): تتحقق إن كان المحرف الذي استٌدعي معها هو مسافة بيضاء (whitespace).

مصادر