Scala'da birden çok değeri eşleştirme kalıbı nasıl yapılır?


85

Diyelim ki, aynı kodu kullanarak uzak bir hizmetten birden çok dönüş değeri işlemek istiyorum. Bunu Scala'da nasıl ifade edeceğimi bilmiyorum:

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

Ayıklama Yöntemini kullanabileceğimi ve bunu arayabileceğimi biliyorum, ancak görüşmede hala tekrar var. Ruby kullanıyor olsaydım, bunu şöyle yazardım:

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

Örneği basitleştirdiğime dikkat edin, bu nedenle normal ifadeler veya benzerleri üzerinde eşleştirme örüntüsü yapmak istemiyorum. Eşleşme değerleri aslında karmaşık değerlerdir.


Yanıtlar:


150

Yapabilirsin:

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

Desenin bazı kısımlarını adlara bağlayamayacağınızı unutmayın - şu anda bunu yapamazsınız:

code match {
  case Left(x) | Right(x) =>
  case null =>
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.