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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>filterTo()‎</code> في لغة Kotlin}}</noinclude> تضيف الدالة<code>filterTo()‎</code> إلى المعام...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>filterTo()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>filterTo()‎</code> في لغة Kotlin}}</noinclude>


تضيف الدالة<code>filterTo()‎</code> إلى المعامل <code>destination</code> الممرّر إليها عناصرّ  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي لا تحقق الشرط المنطقي <code>predicate</code> المُمرّر إلى الدالة<code>filterTo()‎</code>. من الجدير بالذكر أنّ <code>destination</code> ينبغي أن تكون [[Kotlin/collections|مجموعة]] قابلة للتغيير (<code>MutableCollection</code>).
تضيف الدالة<code>filterTo()‎</code> إلى المعامل <code>destination</code> الممرّر إليها عناصرّ  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. من الجدير بالذكر أنّ <code>destination</code> ينبغي أن تكون [[Kotlin/collections|مجموعة]] قابلة للتغيير (<code>MutableCollection</code>).


في حال استدعائها عبر [[Kotlin/collections/Map|قاموس]] فستضيف كل الأزوج التي لا تحقق الشرط المنطقي <code>predicate()‎</code> إلى [[Kotlin/collections/Map|القاموس]] <code>destination</code> الممرّر إلى الدالة <code>filterNotTo()‎</code> . ومن الجدير بالذكر أنّ <code>destination</code> ينبغي أن تكون [[Kotlin/collections/Map|قاموسًا]] قابلا للتغيير (<code>MutableMap</code>).
في حال استدعائها عبر [[Kotlin/collections/Map|قاموس]] فستضيف كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> إلى [[Kotlin/collections/Map|القاموس]] <code>destination</code> الممرّر إليها. ومن الجدير بالذكر أنّ <code>destination</code> ينبغي أن تكون [[Kotlin/collections/Map|قاموسًا]] قابلا للتغيير (<code>MutableMap</code>).
==البنية العامة==
==البنية العامة==
يمكن استدعاء الدالة<code>filterTo()‎</code> على [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]].<syntaxhighlight lang="kotlin">
يمكن استدعاء الدالة<code>filterTo()‎</code> على [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]].<syntaxhighlight lang="kotlin">
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterNotTo(
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterTo(
     destination: C,  
     destination: C,  
     predicate: (T) -> Boolean
     predicate: (T) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Byte>> ByteArray.filterNotTo(
inline fun <C : MutableCollection<in Byte>> ByteArray.filterTo(
     destination: C,  
     destination: C,  
     predicate: (Byte) -> Boolean
     predicate: (Byte) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Short>> ShortArray.filterNotTo(
inline fun <C : MutableCollection<in Short>> ShortArray.filterTo(
     destination: C,  
     destination: C,  
     predicate: (Short) -> Boolean
     predicate: (Short) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Int>> IntArray.filterNotTo(
inline fun <C : MutableCollection<in Int>> IntArray.filterTo(
     destination: C,  
     destination: C,  
     predicate: (Int) -> Boolean
     predicate: (Int) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Long>> LongArray.filterNotTo(
inline fun <C : MutableCollection<in Long>> LongArray.filterTo(
     destination: C,  
     destination: C,  
     predicate: (Long) -> Boolean
     predicate: (Long) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Float>> FloatArray.filterNotTo(
inline fun <C : MutableCollection<in Float>> FloatArray.filterTo(
     destination: C,  
     destination: C,  
     predicate: (Float) -> Boolean
     predicate: (Float) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Double>> DoubleArray.filterNotTo(
inline fun <C : MutableCollection<in Double>> DoubleArray.filterTo(
     destination: C,  
     destination: C,  
     predicate: (Double) -> Boolean
     predicate: (Double) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Boolean>> BooleanArray.filterNotTo(
inline fun <C : MutableCollection<in Boolean>> BooleanArray.filterTo(
     destination: C,  
     destination: C,  
     predicate: (Boolean) -> Boolean
     predicate: (Boolean) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Char>> CharArray.filterNotTo(
inline fun <C : MutableCollection<in Char>> CharArray.filterTo(
     destination: C,  
     destination: C,  
     predicate: (Char) -> Boolean
     predicate: (Char) -> Boolean
): C  
): C  
inline fun <T, C : MutableCollection<in T>> Iterable<T>.filterNotTo(
inline fun <T, C : MutableCollection<in T>> Iterable<T>.filterTo(
     destination: C,  
     destination: C,  
     predicate: (T) -> Boolean
     predicate: (T) -> Boolean
): C
): C  
</syntaxhighlight>يمكن استدعاء الدالة<code>filterNotTo()‎</code> على [[Kotlin/collections/Map|القواميس]].
</syntaxhighlight>يمكن استدعاء الدالة<code>filterNotTo()‎</code> على [[Kotlin/collections/Map|القواميس]].<syntaxhighlight lang="kotlin">
 
inline fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.filterTo(
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
    destination: M,
    predicate: (Entry<K, V>) -> Boolean
): M
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].


==القيم المٌعادة==
==القيم المٌعادة==
سطر 54: سطر 57:
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()filterTo</code> مع اللوائح المتغيرة===
===استخدام الدالة <code>()filterTo</code> مع اللوائح المتغيرة===
تعرف الشيفرة الآتية [[Kotlin/collections/List|لائحتين]] متغيرتين (<code>mutableList</code>) باسم <code>list</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا (<code>0</code>)، ثم تستخدم الدالة <code>()filterTo</code> لتصفية عناصر  [[Kotlin/Array|اللائحة]] <code>list</code> التي لا تحقق الشرط المنطقي<code>predicate</code> المعرّف في الشيفرة وتضيف تلك العناصر إلى <code>list2</code>ثم تعرضها:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية [[Kotlin/collections/List|لائحتين]] متغيرتين (<code>mutableList</code>) باسم <code>list</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا (<code>0</code>)، ثم تستخدم الدالة <code>()filterTo</code> لتصفية عناصر  [[Kotlin/Array|اللائحة]] <code>list</code> التي تحقق الشرط المنطقي<code>predicate</code> المعرّف في الشيفرة وتضيف تلك العناصر إلى <code>list2</code>ثم تعرضها:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val list = mutableListOf(1, 2, 3, 2, 5, 1)
val list = mutableListOf(1, 2, 3, 2, 5, 1)
سطر 60: سطر 63:
val predicate  : (Int) -> Boolean = { it < 3 }
val predicate  : (Int) -> Boolean = { it < 3 }


list.filterNotTo(list2, predicate)
list.filterTo(list2, predicate)


println(list2) // [0, 3, 5]
println(list2) // [0, 1, 2, 2, 1]
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
*<code>[[Kotlin/collections/filterNotTo|filterNotTo()]]</code>‎: تضيف إلى المعامل <code>destination</code> الممرّر إليها عناصرّ <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي لا تحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. في حال استدعائها عبر قاموس فستضيف كل الأزوج التي لا تحقق الشرط المنطقي  <code>predicate()‎</code>  إلى  القاموس <code>destination</code> الممرّر إليها.
*<code>[[Kotlin/collections/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> الممرر إلى الدالة.
*<code>[[Kotlin/collections/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> الممرر إلى الدالة.


سطر 74: سطر 78:
*<code>[[Kotlin/collections/filterIndexedTo|filterIndexedTo()]]</code>‎: تضيف  إلى المعامل <code>destination</code> الممرّر إليها عناصرّ <nowiki/>[[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
*<code>[[Kotlin/collections/filterIndexedTo|filterIndexedTo()]]</code>‎: تضيف  إلى المعامل <code>destination</code> الممرّر إليها عناصرّ <nowiki/>[[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
==مصادر==
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not-to.html الدالة  filterTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-to.html الدالة  filterTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Functions]]

مراجعة 18:27، 15 مايو 2018


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

في حال استدعائها عبر قاموس فستضيف كل الأزوج التي تحقق الشرط المنطقي predicate()‎ إلى القاموس destination الممرّر إليها. ومن الجدير بالذكر أنّ destination ينبغي أن تكون قاموسًا قابلا للتغيير (MutableMap).

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

يمكن استدعاء الدالةfilterTo()‎ على المصفوفات أو المجموعات.

inline fun <T, C : MutableCollection<in T>> Array<out T>.filterTo(
    destination: C, 
    predicate: (T) -> Boolean
): C 
inline fun <C : MutableCollection<in Byte>> ByteArray.filterTo(
    destination: C, 
    predicate: (Byte) -> Boolean
): C 
inline fun <C : MutableCollection<in Short>> ShortArray.filterTo(
    destination: C, 
    predicate: (Short) -> Boolean
): C 
inline fun <C : MutableCollection<in Int>> IntArray.filterTo(
    destination: C, 
    predicate: (Int) -> Boolean
): C 
inline fun <C : MutableCollection<in Long>> LongArray.filterTo(
    destination: C, 
    predicate: (Long) -> Boolean
): C 
inline fun <C : MutableCollection<in Float>> FloatArray.filterTo(
    destination: C, 
    predicate: (Float) -> Boolean
): C 
inline fun <C : MutableCollection<in Double>> DoubleArray.filterTo(
    destination: C, 
    predicate: (Double) -> Boolean
): C 
inline fun <C : MutableCollection<in Boolean>> BooleanArray.filterTo(
    destination: C, 
    predicate: (Boolean) -> Boolean
): C 
inline fun <C : MutableCollection<in Char>> CharArray.filterTo(
    destination: C, 
    predicate: (Char) -> Boolean
): C 
inline fun <T, C : MutableCollection<in T>> Iterable<T>.filterTo(
    destination: C, 
    predicate: (T) -> Boolean
): C

يمكن استدعاء الدالةfilterNotTo()‎ على القواميس.

inline fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.filterTo(
    destination: M, 
    predicate: (Entry<K, V>) -> Boolean
): M

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

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

انظر أعلاه.

أمثلة

استخدام الدالة ()filterTo مع اللوائح المتغيرة

تعرف الشيفرة الآتية لائحتين متغيرتين (mutableList) باسم list و list2 باستخدام الدالة ()mutableListOf، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا (0)، ثم تستخدم الدالة ()filterTo لتصفية عناصر اللائحة list التي تحقق الشرط المنطقيpredicate المعرّف في الشيفرة وتضيف تلك العناصر إلى list2ثم تعرضها:

fun main(args: Array<String>) {
val list = mutableListOf(1, 2, 3, 2, 5, 1)
val list2 = mutableListOf(0)
val predicate  : (Int) -> Boolean = { it < 3 }

list.filterTo(list2, predicate)

println(list2) // [0, 1, 2, 2, 1]
}

انظر أيضًا

  • filterNotTo()‎: تضيف إلى المعامل destination الممرّر إليها عناصرّ المصفوفة أو المجموعة التي استُدعيت عبرها والتي لا تحقق الشرط المنطقي predicate المُمرّر إليها. في حال استدعائها عبر قاموس فستضيف كل الأزوج التي لا تحقق الشرط المنطقي  predicate()‎  إلى  القاموس destination الممرّر إليها.
  • filter()‎: تعيد  لائحة تحتوي عناصر المصفوفة أو المجموعة التي تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي predicate()‎ الممرر إلى الدالة.
  • filterNot()‎: تعيد لائحة تحتوي عناصر المصفوفة أو المجموعة التي لا تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة. وفي حال استدعائها عبر قاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي لا تحقق الشرط المنطقي predicate()‎ الممرر إلى الدالة.
  • filterIsInstance()‎: تعيد لائحة تحتوي عناصر المصفوفة أو المجموعة التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أوصنفٍ معيّن.
  • filterIndexedTo()‎: تضيف  إلى المعامل destination الممرّر إليها عناصرّ المجموعة المتغيرة (MutableCollection) التي استُدعيت عبرها والتي تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة.

مصادر