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

من موسوعة حسوب
لا ملخص تعديل
ط مراجعة وتدقيق.
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>contentDeepEquals()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>contentDeepEquals()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة <code>contentDeepEquals()‎</code> القيمة <code>true</code> إن كانت المصفوفتان المحددتان متساويتان بعُمق، أي أنهما تحتويان على نفس عدد العناصر ونفس العناصر بنفس الترتيب، وتعيد <code>false</code> خلاف ذلك.   
تتحقق الدالة <code>contentDeepEquals()‎</code> من تساوي مصفوفتين بالعُمق، أي أنهما تحتويان على نفس العناصر وبنفس الترتيب.   


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


==البنية العامة==
==البنية العامة==
سطر 11: سطر 11:
</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|توثيق الدوال المباشرة (inline functions)]]).
==القيم المعادة==
==القيم المعادة==
<code>true</code> إن كانت المصفوفتان المحددتان متساويتان بعُمق، أي أنهما تحتويان على نفس عدد العناصر ونفس العناصر بنفس الترتيب، وتعيد <code>false</code> خلاف ذلك.  
القيمة المنطقية <code>true</code> إن كانت المصفوفتان المحددتان متساويتان بالعُمق، أي أنَّهما تحتويان على نفس العناصر وبنفس الترتيب، أو القيمة المنطقيَّة <code>false</code> خلاف ذلك.  
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()contentDeepEquals</code> مع مصفوفتين متساويتين ===
===استخدام الدالة <code>()contentDeepEquals</code> مع مصفوفتين متساويتين ===
تعرف الشيفرة الآتية مصفوفتين لهما نفس عدد العناصر ونفس العناصر بنفس الترتيب باسم <code>array</code> و <code>array2</code>مكونتان من أربعة أعداد  باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()contentDeepEquals</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)
سطر 28: سطر 28:
   
   
===استخدام الدالة <code>()contentDeepEquals</code> مع مصفوفتين غير متساويتين ===
===استخدام الدالة <code>()contentDeepEquals</code> مع مصفوفتين غير متساويتين ===
تعرف الشيفرة الآتية مصفوفتين لهما نفس عدد العناصر ولكن تختلفان في أحد العناصر ب باسم <code>array</code> و <code>array2</code> مكونة من أربعة أعداد  باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()contentDeepEquals</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)
سطر 37: سطر 37:
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
*<code>[[Kotlin/collections/contentDeepEquals|contentEquals()]]</code>‎: تعيد القيمة <code>true</code> إن كانت المصفوفتان المحددتان متساويتان بنيويًا (''structurally'' equal)، أي أنهما تحتويان على نفس عدد العناصر ونفس العناصر بنفس الترتيب، وتعيد <code>false</code> خلاف ذلك.  
*الدالة <code>[[Kotlin/collections/contentEquals|contentEquals()]]</code>‎: تتحقَّق إن كانت مصفوفتان متساويتان بنيويًا (''structurally'' equal)، أي أنَّهما تحتويان على نفس عدد العناصر ونفس العناصر بنفس الترتيب.
*الدالة <code>[[Kotlin/collections/contains|contains()‎]]</code>: تتحقق إن كانت <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت معها تحتوي على العنصر الممرّر إليها، أو إن كانت الخريطة التي استدعيت معها تحتوي على ذلك العنصر كمفتاح (key).
*الدالة <code>[[Kotlin/collections/contentDeepToString|contentDeepToString()]]</code>‎: تعيد تمثيلًا نصيًا استنادًا إلى محتوى [[Kotlin/Array|المصفوفة]] التي استُدعيت معها كما لو كانت [[Kotlin/List|قائمة]].  


==مصادر==
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/contains.html الدالة  contains()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/content-deep-equals.html الدالة  contentDeepEquals()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Functions]]

مراجعة 13:00، 3 يوليو 2018

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

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

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

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()‎: تتحقَّق إن كانت مصفوفتان متساويتان بنيويًا (structurally equal)، أي أنَّهما تحتويان على نفس عدد العناصر ونفس العناصر بنفس الترتيب.
  • الدالة contains()‎: تتحقق إن كانت المصفوفة أو المجموعة التي استُدعيت معها تحتوي على العنصر الممرّر إليها، أو إن كانت الخريطة التي استدعيت معها تحتوي على ذلك العنصر كمفتاح (key).
  • الدالة contentDeepToString()‎: تعيد تمثيلًا نصيًا استنادًا إلى محتوى المصفوفة التي استُدعيت معها كما لو كانت قائمة.

مصادر