স্কালায় একাধিক মানের মান মেলে কীভাবে?


85

ধরা যাক আমি একই কোড ব্যবহার করে দূরবর্তী পরিষেবা থেকে একাধিক রিটার্ন মানগুলি পরিচালনা করতে চাই। স্ক্যালায় কীভাবে এটি প্রকাশ করতে হয় তা আমি জানি না:

code match {
  case "1" => // Whatever
  case "2" => // Same whatever
  case "3" => // Ah, something different
}

আমি জানি আমি এক্সট্রাক্ট পদ্ধতিটি ব্যবহার করতে পারি এবং এটি কল করতে পারি তবে কলটিতে এখনও পুনরাবৃত্তি রয়েছে। আমি যদি রুবি ব্যবহার করতাম তবে আমি এটি এই জাতীয়ভাবে লিখতাম:

case code
when "1", "2"
  # Whatever
when "3"
  # Ah, something different
end

নোট করুন যে আমি উদাহরণটি সরল করে দিয়েছি, এভাবে আমি নিয়মিত অভিব্যক্তি বা এরকম কিছুতে প্যাটার্ন মেলতে চাই না। ম্যাচের মানগুলি আসলে জটিল মান।


উত্তর:


150

আপনি করতে পারেন:

code match {
  case "1" | "2" => // whatever
  case "3" =>
}

নোট করুন যে আপনি প্যাটার্নের অংশগুলিকে নামের সাথে আবদ্ধ করতে পারবেন না - আপনি বর্তমানে এটি করতে পারবেন না:

code match {
  case Left(x) | Right(x) =>
  case null =>
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.