الدالة contentDeepEquals()‎ في لغة Kotlin

من موسوعة حسوب
< Kotlin‏ | collections
مراجعة 18:42، 12 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>contentDeepEquals()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>contentEquals()‎</code> الق...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

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

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

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

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

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

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

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

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

أمثلة

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

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

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

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

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

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

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 خلاف ذلك.

مصادر