الفرق بين المراجعتين ل"Kotlin/kotlin.text/MatchResult/destructured"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الخاصية <code>MatchResult.destructured‎</code> في لغة Kotlin}}</noinclude> تعيد الخاصية <code>destructured‎</code>...')
 
(مراجعة وتدقيق.)
 
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الخاصية <code>MatchResult.destructured‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الخاصية <code>MatchResult.destructured‎</code> في Kotlin}}</noinclude>
تعيد الخاصية <code>destructured‎</code> فهرس أول مطابقة [[Kotlin/kotlin.text/Regex/index|للتعبير النمطي]] الذي استُدعيت عبره  في الوسيط المُمرّر <code>input،</code>بداية من الفهرس المحدد بالوسيط <code>startIndex.</code>
+
تمثل الخاصية <code>MatchResult.destructured‎</code> نسخةً من الصنف <code>[[Kotlin/kotlin.text/MatchResult/Destructured|Destructured]]</code> توفّر مكونات عملية الإسناد بالتفكيك (destructuring assignment) التي تطبق على قيم المجموعة المُطابقة.
 +
 
 +
تطابق الدالة <code>[[Kotlin/kotlin.text/MatchResult/Destructured/component1|component1]]</code> قيمة المجموعة الأولى، وتطابق الدالة <code>[[Kotlin/kotlin.text/MatchResult/Destructured/component2|component2]]</code> قيمة المجموعة الثانية، وهلم جرًا.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
actual fun find(
+
open val destructured: Destructured
    input: CharSequence,
+
 
    startIndex: Int = 0
 
): MatchResult?
 
 
</syntaxhighlight>
 
</syntaxhighlight>
==القيمة المُعادة==
+
==القيمة المعادة==
عدد صحيح.
+
تعاد نسخةٌ من الصنف <code>[[Kotlin/kotlin.text/MatchResult/Destructured|Destructured]]</code>.
 
==أمثلة==
 
==أمثلة==
===استخدام الخاصية <code>destructured‎</code>===
+
ينشِئ التابع <code>Regex()‎</code> في الشيفرة التالية تعبيرًا نمطيًا باسم <code>regex</code> لتفكيك مسارات الملفات إلى ثلاث مُركّبات: المجلد (directory) واسم الملف (fileName) والامتداد (extension)، ثم نعرّف سلسلة نصية باسم <code>fullPath</code> تحتوي مسار أحد الملفات، ثم نستخرج من <code>fullPath</code> مجموعات النتائج عبر استدعاء الدالة <code>matchEntire()‎</code> مع <code>regex</code> وتمرير  <code>fullPath</code> إليها كوسيط. نستخدم بعدئذٍ الخاصية <code>MatchResult.destructured</code> لاستخراج مجموعات النتائج:<syntaxhighlight lang="kotlin">
ينشِئ التابع <code>Regex()‎</code> في الشيفرة الآتية تعبيرًا نمطيًا باسم <code>reg</code> لمطابقة التعابير العددية، ثم يستدعي عبره الدالة <code>destructured‎</code> ويحيل القيمة المعادة إلى المتغير <code>matchResult</code>، ثم يطبع قيمة الفهرس:<syntaxhighlight lang="kotlin">
+
package com.kotlination.filename
 +
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val reg = """-?\d+(\.\d+)?""".toRegex()
 
  
val matchResult = reg.find("aff4rb")
+
    val fullPath = "Kotlination/Kotlin/Practice/getFileNameExample.kt"
      
+
 
print(matchResult?.value) // 4
+
    val regex = """(.+)/(.+)\.(.+)""".toRegex()
 +
     val matchResult = regex.matchEntire(fullPath)
 +
 
 +
    if (matchResult != null) {
 +
        val (directory, fileName, extension) = matchResult.destructured
 +
        println("dir: $directory | fileName: $fileName | extension: $extension")
 +
        // => dir: Kotlination/Kotlin/Practice | fileName: getFileNameExample | extension: kt
 +
    }
 +
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
==أنظر أيضًا==
+
==انظر أيضًا==
* الخاصية <code>[[Kotlin/kotlin.text/Regex/pattern|pattern]]:</code> تعيد السلسلة النصية النمطية (pattern string) التي استُخدمت في إنشاء التعبير النمطي الذي استُدعيت عبره.
+
* الخاصية <code>[[Kotlin/kotlin.text/MatchResult/groupValues|MatchResult.groupValues]]</code>: تمثل [[Kotlin/collection/List|قائمة]] بقيم المجموعة المفهرسة المتطابقة.
 
+
* الخاصية <code>[[Kotlin/kotlin.text/MatchResult/groups|MatchResult.groups]]</code>: تمثل [[Kotlin/collections|مجموعةً]] (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] محدد.
* الخاصية <code>[[Kotlin/kotlin.text/Regex/options|options]]:</code> تعبر عن مجموعة الخيارات التي استُخدمت في إنشاء التعبير النمطي الذي استُدعيت عبره.
+
* <nowiki/><nowiki/>الخاصية <code>[[Kotlin/kotlin.text/MatchResult/range|MatchResult.range]]</code>: تمثل مجال الفهارس الذي يحدد مكان مُطابقة [[Kotlin/kotlin.text/Regex/index|تعبير نمطي]] محدد في السلسلة النصية الأصلية.
 +
* الخاصية <code>[[Kotlin/kotlin.text/MatchResult/value|MatchResult.value]]</code>: تمثل [[Kotlin/String|السلسلة النصية]] المُدخلة، أو جزءًا منها، والمُطابقة [[Kotlin/kotlin.text/Regex/index|للتعبير النمطي]]. 
  
 
==مصادر==
 
==مصادر==
* [http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/-regex/find.html الدالة  MatchResult.destructured()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/-match-result/destructured.html صفحة الخاصية MatchResult.destructured في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Property]]
 
[[تصنيف:Kotlin Property]]
 +
[[تصنيف:Kotlin Text]]
 +
[[تصنيف:Kotlin MatchResult]]

المراجعة الحالية بتاريخ 06:04، 30 أغسطس 2018

تمثل الخاصية MatchResult.destructured‎ نسخةً من الصنف Destructured توفّر مكونات عملية الإسناد بالتفكيك (destructuring assignment) التي تطبق على قيم المجموعة المُطابقة.

تطابق الدالة component1 قيمة المجموعة الأولى، وتطابق الدالة component2 قيمة المجموعة الثانية، وهلم جرًا.

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

open val destructured: Destructured

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

تعاد نسخةٌ من الصنف Destructured.

أمثلة

ينشِئ التابع Regex()‎ في الشيفرة التالية تعبيرًا نمطيًا باسم regex لتفكيك مسارات الملفات إلى ثلاث مُركّبات: المجلد (directory) واسم الملف (fileName) والامتداد (extension)، ثم نعرّف سلسلة نصية باسم fullPath تحتوي مسار أحد الملفات، ثم نستخرج من fullPath مجموعات النتائج عبر استدعاء الدالة matchEntire()‎ مع regex وتمرير fullPath إليها كوسيط. نستخدم بعدئذٍ الخاصية MatchResult.destructured لاستخراج مجموعات النتائج:

package com.kotlination.filename

fun main(args: Array<String>) {

    val fullPath = "Kotlination/Kotlin/Practice/getFileNameExample.kt"

    val regex = """(.+)/(.+)\.(.+)""".toRegex()
    val matchResult = regex.matchEntire(fullPath)

    if (matchResult != null) {
        val (directory, fileName, extension) = matchResult.destructured
        println("dir: $directory | fileName: $fileName | extension: $extension")
        // => dir: Kotlination/Kotlin/Practice | fileName: getFileNameExample | extension: kt
    }

}

انظر أيضًا

مصادر