0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

من دو نوع DataTest و DataSample در اسکالا دارم:

    case class DataTest(testData: String)
    case class DataSample(sampleData: Int)

می خواهم در یک عبارت pattern matching با یک case در صورتی که مقدار متعیر برابر هر کدام از نوع های بالا بود پیغام خواستی را چاپ کنم، چیزی شبیه کد زیر:

    val x = DataSample(10)

    x match {
      case DataTest(_) or DataSample(_) => println("ok")
      case _                                 => println("something else")
    }
  }

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

برای این کار می توانید از دو تکه کد زیر استفاده کنید:

    val x = DataSample(10)

    x match {
      case DataTest(_) | DataSample(_) => println("my data")
      case _                               => println("something else")
    }

یا

    val x = DataSample(10)

    x match {
      case _: DataTest | _: DataSample => println("my data")
      case _                           => println("something else")
    }

سوالات مشابه

+2 امتیاز
2 پاسخ 317 بازدید
0 امتیاز
2 پاسخ 359 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 233 بازدید
+1 امتیاز
1 پاسخ 262 بازدید
0 امتیاز
1 پاسخ 254 بازدید
0 امتیاز
1 پاسخ 321 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
2 پاسخ 789 بازدید
+1 امتیاز
2 پاسخ 274 بازدید
0 امتیاز
1 پاسخ 228 بازدید
...