الفرق بين المراجعتين ل"Kotlin/collections/contains"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>contains()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة <code>contains()‎</code> العنصر الأ...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>contains()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>contains()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة <code>contains()‎</code> العنصر الأول من المصفوفة التي استُدعيت عبرها، وفي حال استُدعيت عبر قاموس فستعيد مركبة المفتاح (key component) الخاصة بمدخل القاموس (map entryوتسمح هذه الدالة باستخدام التصريحات التفكيكية (destructuring declarations) عند العمل على القواميس.  
+
تعيد الدالة <code>contains()‎</code> القيمة <code>true</code> إن كانت [[kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها تحتوي العنصر الممرّر إليها، وفي حال استُدعيت عبر قاموس فتعيد <code>true</code> إن كان ذلك القاموس يحتوي ذلك العنصر كمفتاح (<code>key</code>وتعيد <code>false</code> خلاف ذلك. 
 +
 
 +
يمكن استدعاء <code>contains()‎</code> عبر قاموس بالصياغة <code>x in map</code> للتحقق من أنّ العنصر <code>x</code> ينتمي إلى القاموس.  
 
==البنية العامة==
 
==البنية العامة==
يمكن استدعاء الدالة <code>contains()‎</code>عبر المصفوفات واللوائح (<code>List</code>):<syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة <code>contains()‎</code>عبر [[kotlin/Array|المصفوفات]] :<syntaxhighlight lang="kotlin">
inline operator fun <T> Array<out T>.component1(): T
+
operator fun <T> Array<out T>.contains(element: T): Boolean
inline operator fun ByteArray.component1(): Byte
+
operator fun ByteArray.contains(element: Byte): Boolean
inline operator fun ShortArray.component1(): Short
+
operator fun ShortArray.contains(element: Short): Boolean
inline operator fun IntArray.component1(): Int
+
operator fun IntArray.contains(element: Int): Boolean
inline operator fun LongArray.component1(): Long
+
operator fun LongArray.contains(element: Long): Boolean
inline operator fun FloatArray.component1(): Float
+
operator fun FloatArray.contains(element: Float): Boolean
inline operator fun DoubleArray.component1(): Double
+
operator fun DoubleArray.contains(element: Double): Boolean
inline operator fun BooleanArray.component1(): Boolean  
+
operator fun BooleanArray.contains(element: Boolean): Boolean  
inline operator fun CharArray.component1(): Char  
+
operator fun CharArray.contains(element: Char): Boolean
inline operator fun <T> List<T>.component1(): T
 
 
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
ويمكن استدعاء الدالة <code>component1()‎</code>عبر القواميس (maps):<syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة <code>contains()‎</code>عبر [[kotlin/Array|المجموعات]]:<syntaxhighlight lang="kotlin">
inline operator fun <K, V> Entry<K, V>.component1(): K
+
operator fun <T> Iterable<T>.contains(element: T): Boolean
  
 +
</syntaxhighlight>يمكن استدعاء الدالة <code>contains()‎</code>عبر  القواميس (maps):<syntaxhighlight lang="kotlin">
 +
inline operator fun <K, V> Map<out K, V>.contains(
 +
    key: K
 +
): Boolean
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 +
 +
ويُلاحظ وجود الكلمة المفتاحية <code>operator</code> للدلالة على أنّ هذا التابع مرتبط بمعامل الفهرسة المذكور سابقًا.
 
==القيم المعادة==
 
==القيم المعادة==
العنصر الأول من المصفوفة التي استُدعيت عبرها، وفي حال استُدعيت عبر قاموس فستعيد مركبة المفتاح (key component) الخاصة بمدخل القاموس (map entry).
+
<code>true</code> إن كانت [[kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت الدالة عبرها تحتوي العنصر الممرّر إليها، وفي حال استُدعيت عبر قاموس فتعيد <code>true</code> إن كان ذلك القاموس يحتوي ذلك العنصر كمفتاح (<code>key</code>). وتعيد <code>false</code> خلاف ذلك.  
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()contains</code> مع اللوائح ===
 
===استخدام الدالة <code>()contains</code> مع اللوائح ===
تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من خمسة حروف باستخدام الدالة <code>()listOf</code>، ثم تستخدم الدالة <code>()component1</code> للحصول على العنصر الأول من اللائحة <code>list</code> ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية لائحة باسم <code>list</code> مكونة من خمسة حروف باستخدام الدالة <code>()listOf</code>، ثم تستخدم الدالة <code>()contains</code> للتحقق من أنّ الحرفين <code>'d'</code> و <code>'x'</code> ينتميان إلى اللائحة <code>list</code> ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
val list = listOf('a', 'b', 'c', 'd', 'e')
 
val list = listOf('a', 'b', 'c', 'd', 'e')
println(list.component1()) // a
+
 
 +
println(list.contains('d')) // true
 +
println(list.contains('x')) // false
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
===استخدام الدالة <code>()component1</code> مع القواميس ===
+
===استخدام الدالة <code>()contains</code> مع القواميس ===
تعرف الشيفرة الآتية قاموسًا باسم <code>map</code> مكونة من  زوجين باستخدام الدالة <code>()hashMapOf</code>، ثم تستخدم الدالة <code>()component1</code> للحصول على المركب الأول من مداخل القاموس (entries) في الحلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code> ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية قاموسًا باسم <code>map</code> مكونة من  زوجين باستخدام الدالة <code>()hashMapOf</code>، ثم تستخدم الدالة <code>()contains</code> للتحقق من أنّ السلسلتين النصيتين<code>'foo'</code> و <code>'fooo'</code> تنتميان إلى مفاتيح القاموس (keys) ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
val map = hashMapOf("foo" to 1, "bar" to 2)
 
val map = hashMapOf("foo" to 1, "bar" to 2)
for (x  in map) {
+
 
    println(x.component1()) // bar foo
+
println(map.contains("foo")) // true
}
+
println(map.contains("fooo")) // false
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
*<code>[[Kotlin/collections/associate|associate()]]</code>‎: تعيد قاموسًا (map).  
+
*<code>[[Kotlin/collections/contentDeepEquals|DeepEquals()]]</code>‎: تتحقق من أن مصفوفتين متساويتان بعمق (''deeply'' equal).  
  
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/component1.html الدالة  component1()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/contains.html الدالة  contains()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 17:10، 12 مايو 2018

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

يمكن استدعاء contains()‎ عبر قاموس بالصياغة x in map للتحقق من أنّ العنصر x ينتمي إلى القاموس.

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

يمكن استدعاء الدالة contains()‎عبر المصفوفات :

operator fun <T> Array<out T>.contains(element: T): Boolean 
operator fun ByteArray.contains(element: Byte): Boolean 
operator fun ShortArray.contains(element: Short): Boolean 
operator fun IntArray.contains(element: Int): Boolean 
operator fun LongArray.contains(element: Long): Boolean 
operator fun FloatArray.contains(element: Float): Boolean 
operator fun DoubleArray.contains(element: Double): Boolean 
operator fun BooleanArray.contains(element: Boolean): Boolean 
operator fun CharArray.contains(element: Char): Boolean

يمكن استدعاء الدالة contains()‎عبر المجموعات:

operator fun <T> Iterable<T>.contains(element: T): Boolean

يمكن استدعاء الدالة contains()‎عبر القواميس (maps):

inline operator fun <K, V> Map<out K, V>.contains(
    key: K
): Boolean

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

ويُلاحظ وجود الكلمة المفتاحية operator للدلالة على أنّ هذا التابع مرتبط بمعامل الفهرسة المذكور سابقًا.

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

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

أمثلة

استخدام الدالة ()contains مع اللوائح

تعرف الشيفرة الآتية لائحة باسم list مكونة من خمسة حروف باستخدام الدالة ()listOf، ثم تستخدم الدالة ()contains للتحقق من أنّ الحرفين 'd' و 'x' ينتميان إلى اللائحة list ثم تطبع الناتج:

fun main(args: Array<String>) {
val list = listOf('a', 'b', 'c', 'd', 'e')

println(list.contains('d')) // true
println(list.contains('x')) // false
}

استخدام الدالة ()contains مع القواميس

تعرف الشيفرة الآتية قاموسًا باسم map مكونة من زوجين باستخدام الدالة ()hashMapOf، ثم تستخدم الدالة ()contains للتحقق من أنّ السلسلتين النصيتين'foo' و 'fooo' تنتميان إلى مفاتيح القاموس (keys) ثم تطبع الناتج:

fun main(args: Array<String>) {
val map = hashMapOf("foo" to 1, "bar" to 2)

println(map.contains("foo")) // true
println(map.contains("fooo")) // false
}

انظر أيضًا

  • DeepEquals()‎: تتحقق من أن مصفوفتين متساويتان بعمق (deeply equal).

مصادر