|
|
سطر 1: |
سطر 1: |
| <noinclude>{{DISPLAYTITLE: الدالة <code>text.hasSurrogatePairAt()</code> في لغة Kotlin}}</noinclude> | | <noinclude>{{DISPLAYTITLE: الدالة <code>text.hasSurrogatePairAt()</code> في لغة Kotlin}}</noinclude> |
| تعيد الدالة<code>hasSurrogatePairAt()</code> [[Kotlin/collections/Map|قاموسًا]] يُجمّع حروف [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها حيث مفاتيحه تعيدها الدالة المُمرّرة <code>keySelector</code> وقيمه لوائحُ تضم عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]] (أو ناتج تمرير عناصرها على الدالة <code>valueTransform</code> في حال تمريرها). | | تعيد الدالة<code>hasSurrogatePairAt()</code> القيمة <code>true</code> إن كان لدى [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها زوج يونيكود بديل (Unicode surrogate pair) عند الفهرس المُحدّد. |
| | |
| القاموس المُعاد يحافظ على على ترتيب التكرار (entry iteration order) للمفاتيح الناتجة عن [[Kotlin/CharSequence/index|سلسلة الحروف]] الأصلية.
| |
| ==البنية العامة== | | ==البنية العامة== |
| <syntaxhighlight lang="kotlin"> | | <syntaxhighlight lang="kotlin"> |
| inline fun <K> CharSequence.groupBy(
| | fun CharSequence.hasSurrogatePairAt(index: Int): Boolean |
| keySelector: (Char) -> K
| |
| ): Map<K, List<Char>>
| |
| </syntaxhighlight>في حال استدعاء الدالة<code>groupBy()</code> على <nowiki/>[[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير معامل واحد <code>keySelector</code> فإنّها تُجمّع عناصر <nowiki/>[[Kotlin/CharSequence/index|سلسلة الحروف]] الأصلية في <nowiki/>[[Kotlin/collections/Map|قاموس]]. حيث مفاتيحه تعيدها الدالة الممرّرة <code>keySelector()</code> مُطبّقة على كل عناصر <nowiki/>[[Kotlin/CharSequence/index|سلسلة الحروف]] وقيمه لوائح تضم العناصر المقابلة.<syntaxhighlight lang="kotlin">
| |
| inline fun <K, V> CharSequence.groupBy(
| |
| keySelector: (Char) -> K,
| |
| valueTransform: (Char) -> V
| |
| ): Map<K, List<V>> | |
| </syntaxhighlight>في حال استدعاء الدالة<code>groupBy()</code> على [[Kotlin/CharSequence/index|سلسلة حروف]] مع تمرير معاملين <code>valueTransform</code> و <code>keySelector</code> فإنّها تُجمّع العناصر المعادة من قبل الدالة <code>valueTransform()</code> مُطبّقة على كل عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]] وتربطها بالمفتاح الذي تعيده الدالة<code>keySelector()</code> مطبقة على على عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]] وتعيد [[Kotlin/collections/Map|قاموسًا]] حيث كل مفتاح مرتبط [[Kotlin/collections/List|بلائحة]] العناصر المقابلة.
| |
|
| |
|
| يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
| | </syntaxhighlight> |
| ==القيم المٌعادة== | | ==القيم المٌعادة== |
| [[Kotlin/collections/Map|قاموس]].
| | قيمة منطقية. |
| ==أمثلة== | | ==أمثلة== |
| ===استخدام الدالة <code>()hasSurrogatePairAt</code> مع السلاسل النصية مع تمرير معامل واحد=== | | ===استخدام الدالة <code>()hasSurrogatePairAt</code> مع السلاسل النصية=== |
| تعرِّف الشيفرة الآتية [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة <code>()hasSurrogatePairAt</code> عبرها مع تمرير دالة كوسيط، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin"> | | تعرِّف الشيفرة الآتية [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة <code>()hasSurrogatePairAt</code> عبرها مع تمرير عدد كوسيط، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin"> |
| fun main(args: Array<String>) { | | fun main(args: Array<String>) { |
| val str = "abcdsafddssfghjjffhgggfeeregtgggfgddghhgfdqdgdg"
| | var str = "hsoub" |
| | | |
| print(str.groupBy { it.toByte() } ) | | print(str.hasSurrogatePairAt(1)) //false |
| } | | } |
| </syntaxhighlight>المُخرجات<syntaxhighlight lang="kotlin">
| |
| {97=[a, a], 98=[b], 99=[c], 100=[d, d, d, d, d, d, d, d], 115=[s, s, s], 102=[f, f, f, f, f, f, f], 103=[g, g, g, g, g, g, g, g, g, g, g, g, g], 104=[h, h, h, h], 106=[j, j], 101=[e, e, e], 114=[r], 116=[t], 113=[q]}
| |
|
| |
| </syntaxhighlight>
| |
| ===استخدام الدالة <code>()hasSurrogatePairAt</code> مع سلسلة نصية مع تمرير مُعاملين===
| |
| تعرِّف الشيفرة الآتية [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة <code>()hasSurrogatePairAt</code> عبرها مع تمرير دالتين كوسيطين، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
| |
| fun main(args: Array<String>) {
| |
| val str = "abcdsafddssfghjjffhgggfeeregtgggfgddghhgfdqdgdg"
| |
|
| |
| print(str.groupBy ({ it.toByte() } , {it.toUpperCase()}) )
| |
| }
| |
| </syntaxhighlight>المُخرجات:<syntaxhighlight lang="kotlin">
| |
| {97=[A, A], 98=[B], 99=[C], 100=[D, D, D, D, D, D, D, D], 115=[S, S, S], 102=[F, F, F, F, F, F, F], 103=[G, G, G, G, G, G, G, G, G, G, G, G, G], 104=[H, H, H, H], 106=[J, J], 101=[E, E, E], 114=[R], 116=[T], 113=[Q]}
| |
|
| |
| </syntaxhighlight> | | </syntaxhighlight> |
| ==انظر أيضًا== | | ==انظر أيضًا== |
| * <code>[[Kotlin/kotlin.text/groupByTo|groupByTo()]]</code>: تجمّع الدالة<code>groupByTo()</code> عناصر <nowiki/>[[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها وتضيفها إلى القاموس المُمرّر <code>destination</code> حيث مفاتيحه تعيدها الدالة الممرّرة <code>keySelector()</code> مُطبّقة على كل عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]]، وقيمُه لوائح تضم العناصر المقابلة، وفي حال تمرير معامل ثالث <code>valueTransform</code> فإنّ القيم ستكون لوائح تضم ناتج تطبيق الدالة <code>valueTransform</code> على العناصر المقابلة . ثم تعيد القاموس<code>destination.</code> | | * <code>[[Kotlin/text/isSurrogate|isSurrogate()]]</code>:تعيد القيمة <code>true</code> في حال كان الحرف الذي استٌدعيت عبره بديلًا لكود اليونيكود (Unicode surrogate code unit). |
| * <code>[[Kotlin/kotlin.text/groupingBy|groupingBy()]]</code>: تُنشئ كائنًا من النوع <code>Grouping</code> من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها لاستخدامه لاحقًا مع عمليات المجموعات (group-and-fold operations)، وذلك باستخدام الدالة المُمرّرة <code>keySelector</code> لاستخلاص مفتاح من كل عنصر .
| |
|
| |
|
| ==مصادر== | | ==مصادر== |
| *[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/group-by.html الدالة text.hasSurrogatePairAt() في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin] | | *[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/has-surrogate-pair-at.html الدالة text.hasSurrogatePairAt() في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin] |
| [[تصنيف:Kotlin]] | | [[تصنيف:Kotlin]] |
| [[تصنيف:Kotlin Functions]] | | [[تصنيف:Kotlin Functions]] |
تعيد الدالةhasSurrogatePairAt()
القيمة true
إن كان لدى سلسلة الحروف التي استُدعيت عبرها زوج يونيكود بديل (Unicode surrogate pair) عند الفهرس المُحدّد.
البنية العامة
fun CharSequence.hasSurrogatePairAt(index: Int): Boolean
القيم المٌعادة
قيمة منطقية.
أمثلة
استخدام الدالة ()hasSurrogatePairAt
مع السلاسل النصية
تعرِّف الشيفرة الآتية سلسلة نصية باسم str
، ثمَّ تستدعي الدالة ()hasSurrogatePairAt
عبرها مع تمرير عدد كوسيط، ثمَّ تطبع الناتج:
fun main(args: Array<String>) {
var str = "hsoub"
print(str.hasSurrogatePairAt(1)) //false
}
انظر أيضًا
isSurrogate()
:تعيد القيمة true
في حال كان الحرف الذي استٌدعيت عبره بديلًا لكود اليونيكود (Unicode surrogate code unit).
مصادر