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 پاسخ 521 بازدید
0 امتیاز
2 پاسخ 581 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 405 بازدید
+1 امتیاز
1 پاسخ 418 بازدید
0 امتیاز
1 پاسخ 447 بازدید
0 امتیاز
1 پاسخ 517 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
2 پاسخ 1.0هزار بازدید
+1 امتیاز
2 پاسخ 504 بازدید
0 امتیاز
1 پاسخ 399 بازدید
...