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

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 17: سطر 17:
<code>true</code> إن كانت المصفوفتان المحددتان متساويتان بعُمق، أي أنهما تحتويان على نفس عدد العناصر  ونفس العناصر بنفس الترتيب، وتعيد <code>false</code> خلاف ذلك.  
<code>true</code> إن كانت المصفوفتان المحددتان متساويتان بعُمق، أي أنهما تحتويان على نفس عدد العناصر  ونفس العناصر بنفس الترتيب، وتعيد <code>false</code> خلاف ذلك.  
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()contains</code> مع مصفوفتين متساويتين ===
===استخدام الدالة <code>()contentDeepEquals</code> مع مصفوفتين متساويتين ===
تعرف الشيفرة الآتية مصفوفتين لهما نفس عدد العناصر ونفس العناصر بنفس الترتيب باسم <code>array</code> و <code>array2</code>مكونتان من أربعة أعداد  باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()contains</code> للتحقق من أنّ الحرفين المصفوفتين متساويتين بعمق ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية مصفوفتين لهما نفس عدد العناصر ونفس العناصر بنفس الترتيب باسم <code>array</code> و <code>array2</code>مكونتان من أربعة أعداد  باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()contentDeepEquals</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)
سطر 27: سطر 27:
</syntaxhighlight>
</syntaxhighlight>
   
   
===استخدام الدالة <code>()contains</code> مع مصفوفتين غير متساويتين ===
===استخدام الدالة <code>()contentDeepEquals</code> مع مصفوفتين غير متساويتين ===
تعرف الشيفرة الآتية مصفوفتين لهما نفس عدد العناصر ولكن تختلفان في أحد العناصر ب باسم <code>array</code> و <code>array2</code> مكونة من أربعة أعداد  باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()contains</code> للتحقق من أنّ الحرفين المصفوفتين متساويتين بعمق ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية مصفوفتين لهما نفس عدد العناصر ولكن تختلفان في أحد العناصر ب باسم <code>array</code> و <code>array2</code> مكونة من أربعة أعداد  باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()contentDeepEquals</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)

مراجعة 18:44، 12 مايو 2018

تعيد الدالة contentDeepEquals()‎ القيمة true إن كانت المصفوفتان المحددتان متساويتان بعُمق، أي أنهما تحتويان على نفس عدد العناصر ونفس العناصر بنفس الترتيب، وتعيد false خلاف ذلك.

إن كان هناك عنصران متقابلان وكلاهما مصفوفتان متشعبتان، فإنهما ستقارَنان أيضًا بعمق. وإن كانت إحدى المصفوفتان تحتوي على مرجع لها (تحتوي على نفسها) على أيّ مستوى من مستويات التشعب، فإن سلوك الدالة سيكون غير محدد.

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

inline infix fun <T> Array<out T>.contentDeepEquals(
    other: Array<out T>
): Boolean

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

يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).

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

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

أمثلة

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

تعرف الشيفرة الآتية مصفوفتين لهما نفس عدد العناصر ونفس العناصر بنفس الترتيب باسم array و array2مكونتان من أربعة أعداد باستخدام الدالة ()arrayOf، ثم تستخدم الدالة ()contentDeepEquals للتحقق من أنّ الحرفين المصفوفتين متساويتين بعمق ثم تطبع الناتج:

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

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

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

تعرف الشيفرة الآتية مصفوفتين لهما نفس عدد العناصر ولكن تختلفان في أحد العناصر ب باسم array و array2 مكونة من أربعة أعداد باستخدام الدالة ()arrayOf، ثم تستخدم الدالة ()contentDeepEquals للتحقق من أنّ الحرفين المصفوفتين متساويتين بعمق ثم تطبع الناتج:

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

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

انظر أيضًا

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

مصادر