الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/hasSurrogatePairAt»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.hasSurrogatePairAt()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>hasSurrogatePairAt()‎</co...'
 
مراجعة وتدقيق.
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>text.hasSurrogatePairAt()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>CharSequence.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> إن كان لدى [[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> مع السلاسل النصية مع تمرير معامل واحد===
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة  <code>()hasSurrogatePairAt</code> عبرها مع تمرير دالة كوسيط، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
val str = "abcdsafddssfghjjffhgggfeeregtgggfgddghhgfdqdgdg"


print(str.groupBy { it.toByte() } )
=== <code>index</code> ===
}
عدد صحيح يمثل فهرس المحرف الذي سيُتحقَق منه.
</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> مع سلسلة نصية مع تمرير مُعاملين===
تعاد القيمة <code>true</code> إن كان لدى [[Kotlin/CharSequence/index|سلسلة المحارف]] التي استُدعيت معها زوجًا بديلًا في الترميز الموحد (Unicode surrogate pair) عند الفهرس <code>index</code>، أو تعاد القيمة <code>false</code> خلاف ذلك.
تعرِّف الشيفرة الآتية  [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثمَّ تستدعي الدالة <code>()hasSurrogatePairAt</code> عبرها مع تمرير دالتين كوسيطين، ثمَّ تطبع الناتج:<syntaxhighlight lang="kotlin">
==أمثلة==
مثالٌ على استعمال الدالة <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() } , {it.toUpperCase()}) )
    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>
</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>‎: تتحقق إن كان <nowiki/>[[Kotlin/Char|المحرف]] الذي استٌدعي معها بديلًا علويًا لعدد بتات الترميز الموحد (Unicode high-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 الدالة CharSequence.hasSurrogatePairAt()‎ في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Text]]
[[تصنيف:Kotlin CharSequence]]

المراجعة الحالية بتاريخ 04:03، 4 سبتمبر 2018

تتحقق الدالة hasSurrogatePairAt()‎ إن كان لدى سلسلة المحارف التي استُدعيت معها زوجًا بديلًا في الترميز الموحد (Unicode surrogate pair) للمحرف ذي الفهرس المُحدّد.

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

fun CharSequence.hasSurrogatePairAt(index: Int): Boolean

المعاملات

index

عدد صحيح يمثل فهرس المحرف الذي سيُتحقَق منه.

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

تعاد القيمة true إن كان لدى سلسلة المحارف التي استُدعيت معها زوجًا بديلًا في الترميز الموحد (Unicode surrogate pair) عند الفهرس index، أو تعاد القيمة false خلاف ذلك.

أمثلة

مثالٌ على استعمال الدالة ()hasSurrogatePairAt:

fun main(args: Array<String>) {
    var str = "hsoub"

    print(str.hasSurrogatePairAt(1)) //false
}

انظر أيضًا

  • الدالة isSurrogate()‎: تتحقق إن كان المحرف الذي استٌدعي معها بديلًا علويًا لعدد بتات الترميز الموحد (Unicode high-surrogate code unit).

مصادر