الخاصية MatchResult.destructured‎ في لغة Kotlin

من موسوعة حسوب

الخاصية destructured‎ تعيد نسخة من الصنف MatchResult.Destructured، والتي توفّر مركبات لتفكيك قيم المجموعة المُطابقة. المركبة الأولى تقابل قيمة المجموعة المُطابقَة الأولى، والمركبة الثانية تقابل الثانية، وهكذا دواليك.

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

open val destructured: Destructured

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

نسخة من الصنف MatchResult.Destructured.

أمثلة

استخدام الخاصية destructured‎

ينشِئ التابع Regex()‎ في الشيفرة الآتية تعبيرًا نمطيًا باسم regex لتفكيك مسارات الملفات إلى ثلاث مُركّبات: المجلد (directory) واسم الملف (fileName) والامتداد (extension)، ثم نعرّف سلسلة نصية باسم fullPath تحتوي مسار أحد الملفات، ثم نستخرج من fullPath مجموعات النتائج عبر استدعاء الدالةmatchEntire()‎  عبر regex وتمرير fullPath إليها كوسيط، ثم نستخدم الخاصية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
}

}

أنظر أيضًا

مصادر