الفرق بين المراجعتين لصفحة: «Kotlin/collections/asIterable»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(3 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>asIterable()</code> في | <noinclude>{{DISPLAYTITLE: الدالة <code>asIterable()</code> في Kotlin}}</noinclude>تُنشِئ الدالة <code>asIterable()</code>نسخةً تكراريّةً (iterable instance) تُغلّف (wrap) المصفوفة الأصلية وتعيد عناصرَها عندما تُستخدَم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>). | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | |||
fun <T> Array<out T>.asIterable(): Iterable<T> | fun <T> Array<out T>.asIterable(): Iterable<T> | ||
fun ByteArray.asIterable(): Iterable<Byte> | fun ByteArray.asIterable(): Iterable<Byte> | ||
سطر 11: | سطر 11: | ||
fun BooleanArray.asIterable(): Iterable<Boolean> | fun BooleanArray.asIterable(): Iterable<Boolean> | ||
fun CharArray.asIterable(): Iterable<Char> | fun CharArray.asIterable(): Iterable<Char> | ||
</syntaxhighlight> | </syntaxhighlight>ويمكن استدعاء الدالة <code>asIterable()</code>عبر مجموعة ([[Kotlin/collections|collection]]) لتُعيدها على شكل عنصر تكراريّ (iterable):<syntaxhighlight lang="kotlin"> | ||
inline fun <T> Iterable<T>.asIterable(): Iterable<T> | inline fun <T> Iterable<T>.asIterable(): Iterable<T> | ||
</syntaxhighlight> | </syntaxhighlight>كما ويمكن استدعاء الدالة <code>asIterable()</code>عبر عنصر map وستعيد نسخةً تكراريةً (iterable instance) تُغلّف عنصر map الأصلي وتعيد مداخله (entries) عندما تُستخدم في حلقات التكرار (مثل حلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>):<syntaxhighlight lang="kotlin"> | ||
inline fun <K, V> Map<out K, V>.asIterable(): Iterable<Entry<K, V>> | inline fun <K, V> Map<out K, V>.asIterable(): Iterable<Entry<K, V>> | ||
</syntaxhighlight> | </syntaxhighlight>ويُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. | ||
==القيم المعادة== | ==القيم المعادة== | ||
نسخة تكرارية ( | نسخة تكرارية (iterable instance). (انظر شرح الدالة أعلاه لمزيدٍ من التفاصيل) | ||
==أمثلة== | ==أمثلة== | ||
===استخدام الدالة <code>()asIterable</code> مع المصفوفات=== | ===استخدام الدالة <code>()asIterable</code> مع المصفوفات=== | ||
تعرِّف الشيفرة الآتية مصفوفةً باسم <code>array</code> مكونةً من أربعة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تنشئ عنصرًا تكراريًا باسم <code>iter</code> باستخدام الدالة <code>()asIterable</code> وذلك لاستخدامه في الحلقة التكرارية <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val array = arrayOf(6,7,8,9) // | val array = arrayOf(6,7,8,9) // إنشاء مصفوفة | ||
val iter = array.asIterable() // | val iter = array.asIterable() // إنشاء عنصر تكراري | ||
for (i in iter) print(i) // 6789 | for (i in iter) | ||
print(i) // 6789 | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
*<code>[[Kotlin/collections/asList|asList()]]</code>: تعيد | *الدالة <code>[[Kotlin/collections/asList|asList()]]</code>: تعيد قائمةً تُغلّف المصفوفة الأصلية. | ||
*<code>[[Kotlin/collections/asSequence|asSequence()]]</code>: تعيد | *الدالة <code>[[Kotlin/collections/asSequence|asSequence()]]</code>: تعيد نسخةً من النوع <code>sequence</code> والتي تُغلّف المصفوفة الأصليّة وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل حلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>). | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/as-iterable.html صفحة الدالة asIterable() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | |||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/as-iterable.html الدالة | |||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Collection]] |
المراجعة الحالية بتاريخ 07:01، 8 سبتمبر 2018
تُنشِئ الدالة asIterable()
نسخةً تكراريّةً (iterable instance) تُغلّف (wrap) المصفوفة الأصلية وتعيد عناصرَها عندما تُستخدَم في حلقات التكرار (مثل for
).
البنية العامة
fun <T> Array<out T>.asIterable(): Iterable<T>
fun ByteArray.asIterable(): Iterable<Byte>
fun ShortArray.asIterable(): Iterable<Short>
fun IntArray.asIterable(): Iterable<Int>
fun LongArray.asIterable(): Iterable<Long>
fun FloatArray.asIterable(): Iterable<Float>
fun DoubleArray.asIterable(): Iterable<Double>
fun BooleanArray.asIterable(): Iterable<Boolean>
fun CharArray.asIterable(): Iterable<Char>
ويمكن استدعاء الدالة asIterable()
عبر مجموعة (collection) لتُعيدها على شكل عنصر تكراريّ (iterable):
inline fun <T> Iterable<T>.asIterable(): Iterable<T>
كما ويمكن استدعاء الدالة asIterable()
عبر عنصر map وستعيد نسخةً تكراريةً (iterable instance) تُغلّف عنصر map الأصلي وتعيد مداخله (entries) عندما تُستخدم في حلقات التكرار (مثل حلقة for
):
inline fun <K, V> Map<out K, V>.asIterable(): Iterable<Entry<K, V>>
ويُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المعادة
نسخة تكرارية (iterable instance). (انظر شرح الدالة أعلاه لمزيدٍ من التفاصيل)
أمثلة
استخدام الدالة ()asIterable
مع المصفوفات
تعرِّف الشيفرة الآتية مصفوفةً باسم array
مكونةً من أربعة أعداد باستخدام الدالة ()arrayOf
، ثم تنشئ عنصرًا تكراريًا باسم iter
باستخدام الدالة ()asIterable
وذلك لاستخدامه في الحلقة التكرارية for
:
fun main(args: Array<String>) {
val array = arrayOf(6,7,8,9) // إنشاء مصفوفة
val iter = array.asIterable() // إنشاء عنصر تكراري
for (i in iter)
print(i) // 6789
}
انظر أيضًا
- الدالة
asList()
: تعيد قائمةً تُغلّف المصفوفة الأصلية. - الدالة
asSequence()
: تعيد نسخةً من النوعsequence
والتي تُغلّف المصفوفة الأصليّة وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل حلقةfor
).