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 پاسخ 514 بازدید
0 امتیاز
2 پاسخ 575 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 400 بازدید
+1 امتیاز
1 پاسخ 410 بازدید
0 امتیاز
1 پاسخ 444 بازدید
0 امتیاز
1 پاسخ 514 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
2 پاسخ 1.0هزار بازدید
+1 امتیاز
2 پاسخ 499 بازدید
0 امتیاز
1 پاسخ 394 بازدید
...