الخاصية 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: تمثل السلسلة النصية المُدخلة، أو جزءًا منها، والمُطابقة للتعبير النمطي.