الخاصية MatchResult.destructured
في Kotlin
تمثل الخاصية 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
}
}
انظر أيضًا
- الخاصية
MatchResult.groupValues
: تمثل قائمة بقيم المجموعة المفهرسة المتطابقة. - الخاصية
MatchResult.groups
: تمثل مجموعةً (collection) تضم جميع المجموعات (groups) المتطابقة باستعمال تعبير نمطي محدد. - الخاصية
MatchResult.range
: تمثل مجال الفهارس الذي يحدد مكان مُطابقة تعبير نمطي محدد في السلسلة النصية الأصلية. - الخاصية
MatchResult.value
: تمثل السلسلة النصية المُدخلة، أو جزءًا منها، والمُطابقة للتعبير النمطي.