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