الفرق بين المراجعتين لصفحة: «Kotlin/collections/contentEquals»

من موسوعة حسوب
لا ملخص تعديل
ط مراجعة وتدقيق.
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>contentEquals()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>contentEquals()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة <code>contentEquals()‎</code> االقيمة <code>true</code> إن كانت [[Kotlin/Array|المصفوفتان]] المحددتان متساويتان بنيويًا (''structurally'' equal)، أي أنهما تحتويان على نفس عدد العناصر ونفس العناصر بنفس الترتيب، وتعيد <code>false</code> خلاف ذلك.   
تتحقَّق الدالة <code>contentEquals()‎</code> من تساوي [[Kotlin/Array|مصفوفتين]] بنيويًا (''structurally'' equal)، أي إن كان لهما نفس العناصر وبنفس العدد والترتيب.   


==البنية العامة==
==البنية العامة==
سطر 33: سطر 33:
</syntaxhighlight>
</syntaxhighlight>


<u>'''الإصدار المطلوب: Kotlin 1.1'''</u>
'''الإصدار المطلوب: Kotlin 1.1'''


يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ الدالة مباشرة (للمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة)]]، ووجود الكلمة المفتاحية <code>infix</code> يدل على إمكانية استدعاء الدالة بنمط التدوين الداخلي (Infix notation)، أي من خلال حذف المعامل <code>.</code> والأقواس <code>()</code> المُستخدَمَين في الاستدعاء عادةً (راجع للمزيد من التفاصيل <nowiki/>[[Kotlin/functions#.D8.A7.D9.84.D8.AA.D8.AF.D9.88.D9.8A.D9.86 .D8.A7.D9.84.D8.AF.D8.A7.D8.AE.D9.84.D9.8A.D9.91 .28Infix notation.29|توثيق التدوين الداخلي)]].
 
==القيم المعادة ==
ويُلاحَظ كذلك وجود الكلمة المفتاحية <code>infix</code> للدلالة على أن هذه الدالة يمكن استدعاؤها بنمط التدوين الداخلي (Infix notation)، أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/functions#.D8.A7.D9.84.D8.AA.D8.AF.D9.88.D9.8A.D9.86 .D8.A7.D9.84.D8.AF.D8.A7.D8.AE.D9.84.D9.8A.D9.91 .28Infix notation.29|توثيق التدوين الداخلي (infix functions)]].
القيمة المنطقية <code>true</code> إن كانت المصفوفتان المحددتان متساويتان بنيويًا (''structurally'' equal)، أي إن كان لهما نفس العناصر وبنفس العدد والترتيب، أو القيمة <code>false</code> خلاف ذلك.  
==القيم المعادة==
 <code>true</code> إن كانت [[Kotlin/Array|المصفوفتان]] المحددتان متساويتان بنيويًا (''structurally'' equal)، أي أنهما تحتويان على نفس عدد العناصر ونفس العناصر بنفس الترتيب، وتعيد <code>false</code> خلاف ذلك.  
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()contentEquals</code> مع مصفوفتين متساويتين ===
===استخدام الدالة <code>()contentEquals</code> مع مصفوفتين متساويتين ===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفتين]] لهما نفس عدد العناصر ونفس العناصر بنفس الترتيب باسم <code>array</code> و <code>array2</code>مكونتان من أربعة أعداد  باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()contentEquals</code> للتحقق من أنّ الحرفين المصفوفتين متساويتين بعمق ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفتين]] لهما نفس العناصر وبنفس العدد والترتيب باستخدام الدالة <code>()arrayOf</code> ثمَّ تستخدم الدالة <code>()contentEquals</code> للتحقق من أنّ هاتين المصفوفتين متساويتان بنيويًّا:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4)
val array = arrayOf(1,2,3,4)
سطر 52: سطر 50:
   
   
===استخدام الدالة <code>()contentEquals</code> مع مصفوفتين غير متساويتين ===
===استخدام الدالة <code>()contentEquals</code> مع مصفوفتين غير متساويتين ===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفتين]] لهما نفس عدد العناصر ولكن تختلفان في أحد العناصر ب باسم <code>array</code> و <code>array2</code> مكونة من أربعة أعداد  باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()contentEquals</code> للتحقق من أنّ الحرفين المصفوفتين متساويتين بعمق ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفتين]] لهما عناصر مختلفة باستخدام الدالة <code>()arrayOf</code> ثمَّ تستخدم الدالة <code>()contentEquals</code> لمعرفة إن كانت هاتين المصفوفتين متساويتان بنيويًّا:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4)
val array = arrayOf(1,2,3,4)
سطر 61: سطر 59:
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
*<code>[[Kotlin/collections/contentDeepEquals|contentDeepEquals()]]</code>‎: تعيد القيمة <code>true</code> إن كانت [[Kotlin/Array|المصفوفتان]] المحددتان متساويتان بنيويًا (''structurally'' equal)، أي أنهما تحتويان على نفس عدد العناصر  ونفس العناصر بنفس الترتيب، وتعيد <code>false</code> خلاف ذلك.  وتعمل على المستويات المتشعبة كذلك.  
*الدالة <code>[[Kotlin/collections/contentDeepEquals|contentDeepEquals()]]</code>‎: تتحقَّق من تساوي مصفوفتين بالعُمق، أي أنَّهما تحتويان على نفس العناصر وبنفس الترتيب.
* الدالة <code>[[Kotlin/collections/contentToString|contentToString()]]</code>‎: تعيد سلسلة نصية تمثل محتوى <nowiki/>[[Kotlin/Array|المصفوفة]] التي استُدعيت معها كما لو كانت قائمة.
* الدالة <code>[[Kotlin/collections/contentHashCode|contentHashCode()]]</code>‎: تعيد شيفرة hash لمحتوى <nowiki/>[[Kotlin/Array|المصفوفة]] التي استُدعيت معها كما لو كانت قائمة.


==مصادر==
==مصادر==

مراجعة 07:39، 4 يوليو 2018

تتحقَّق الدالة contentEquals()‎ من تساوي مصفوفتين بنيويًا (structurally equal)، أي إن كان لهما نفس العناصر وبنفس العدد والترتيب.

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

inline infix fun <T> Array<out T>.contentEquals(
    other: Array<out T>
): Boolean 
inline infix fun ByteArray.contentEquals(
    other: ByteArray
): Boolean 
inline infix fun ShortArray.contentEquals(
    other: ShortArray
): Boolean 
inline infix fun IntArray.contentEquals(
    other: IntArray
): Boolean 
inline infix fun LongArray.contentEquals(
    other: LongArray
): Boolean 
inline infix fun FloatArray.contentEquals(
    other: FloatArray
): Boolean 
inline infix fun DoubleArray.contentEquals(
    other: DoubleArray
): Boolean 
inline infix fun BooleanArray.contentEquals(
    other: BooleanArray
): Boolean 
inline infix fun CharArray.contentEquals(
    other: CharArray
): Boolean

الإصدار المطلوب: Kotlin 1.1

وجود الكلمة المفتاحية inline يدل على أنَّ الدالة مباشرة (للمزيد من التفاصيل، راجع توثيق الدوال المباشرة)، ووجود الكلمة المفتاحية infix يدل على إمكانية استدعاء الدالة بنمط التدوين الداخلي (Infix notation)، أي من خلال حذف المعامل . والأقواس () المُستخدَمَين في الاستدعاء عادةً (راجع للمزيد من التفاصيل توثيق التدوين الداخلي).

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

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

أمثلة

استخدام الدالة ()contentEquals مع مصفوفتين متساويتين

تعرِّف الشيفرة الآتية مصفوفتين لهما نفس العناصر وبنفس العدد والترتيب باستخدام الدالة ()arrayOf ثمَّ تستخدم الدالة ()contentEquals للتحقق من أنّ هاتين المصفوفتين متساويتان بنيويًّا:

fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4)
val array2 = arrayOf(1,2,3,4)

println(array.contentEquals(array2)) // true
}

استخدام الدالة ()contentEquals مع مصفوفتين غير متساويتين

تعرِّف الشيفرة الآتية مصفوفتين لهما عناصر مختلفة باستخدام الدالة ()arrayOf ثمَّ تستخدم الدالة ()contentEquals لمعرفة إن كانت هاتين المصفوفتين متساويتان بنيويًّا:

fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4)
val array2 = arrayOf(1,2,3,6)

println(array.contentEquals(array2)) // false
}

انظر أيضًا

  • الدالة contentDeepEquals()‎: تتحقَّق من تساوي مصفوفتين بالعُمق، أي أنَّهما تحتويان على نفس العناصر وبنفس الترتيب.
  • الدالة contentToString()‎: تعيد سلسلة نصية تمثل محتوى المصفوفة التي استُدعيت معها كما لو كانت قائمة.
  • الدالة contentHashCode()‎: تعيد شيفرة hash لمحتوى المصفوفة التي استُدعيت معها كما لو كانت قائمة.

مصادر