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 پاسخ 435 بازدید
0 امتیاز
2 پاسخ 500 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 331 بازدید
+1 امتیاز
1 پاسخ 341 بازدید
0 امتیاز
1 پاسخ 374 بازدید
0 امتیاز
1 پاسخ 427 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
2 پاسخ 920 بازدید
+1 امتیاز
2 پاسخ 414 بازدید
0 امتیاز
1 پاسخ 323 بازدید
...