الفرق بين المراجعتين لصفحة: «Kotlin/collections/contentDeepEquals»
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط تدقيق الأمثلة. |
||
سطر 15: | سطر 15: | ||
وجود الكلمة المفتاحية <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) | ||
val array2 = arrayOf(1,2,3,4) | val array2 = arrayOf(1, 2, 3, 4) | ||
println(array.contentDeepEquals(array2)) // true | println(array.contentDeepEquals(array2)) // true | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
سطر 30: | سطر 30: | ||
تعرِّف الشيفرة الآتية مصفوفتين باسم <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) | ||
val array2 = arrayOf(1,2,3,6) | val array2 = arrayOf(1,2,3,6) | ||
println(array.contentDeepEquals(array2)) // false | println(array.contentDeepEquals(array2)) // false | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
سطر 43: | سطر 43: | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/content-deep-equals.html الدالة | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/content-deep-equals.html الدالة contentDeepEquals() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Functions]] | [[تصنيف:Kotlin Functions]] |
مراجعة 09:18، 5 يوليو 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)، أي إن كان لهما نفس العناصر وبنفس العدد والترتيب. - الدالة
contentDeepToString()
: تعيد سلسلة نصية تمثِّل محتوى المصفوفة التي استُدعيت معها كما لو كانت قائمة. - الدالة
contentDeepHashCode()
: تعيد شيفرة hash لمحتوى المصفوفة التي استدعيت معها كما لو كانت قائمة. - الدالة
contains()
: تتحقق إن كانت المصفوفة أو المجموعة التي استُدعيت معها تحتوي على العنصر الممرّر إليها، أو إن كانت الخريطة التي استدعيت معها تحتوي على ذلك العنصر كمفتاح (key).