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 پاسخ 509 بازدید
0 امتیاز
2 پاسخ 567 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 391 بازدید
+1 امتیاز
1 پاسخ 404 بازدید
0 امتیاز
1 پاسخ 440 بازدید
0 امتیاز
1 پاسخ 510 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
2 پاسخ 1.0هزار بازدید
+1 امتیاز
2 پاسخ 493 بازدید
0 امتیاز
1 پاسخ 390 بازدید
...