Как Вы кодируете блок кода сопоставления с образцом в scala?

Как Вы кодируете функцию, которая берет в блоке кода в качестве параметра, который содержит операторы выбора? Например, в моем блоке кода, я не хочу делать соответствие или случай по умолчанию явно. Я выгляжу примерно так

myApi {
    case Whatever() => // code for case 1
    case SomethingElse() => // code for case 2
}

И в моем myApi (), это на самом деле выполнит блок кода и сделает соответствия.

5
задан niton 21 April 2015 в 01:04
поделиться

2 ответа

Для этого необходимо использовать PartialFunction .

scala> def patternMatchWithPartialFunction(x: Any)(f: PartialFunction[Any, Unit]) = f(x)
patternMatchWithPartialFunction: (x: Any)(f: PartialFunction[Any,Unit])Unit

scala> patternMatchWithPartialFunction("hello") {
     |   case s: String => println("Found a string with value: " + s)
     |   case _ => println("Found something else")
     | }
Found a string with value: hello

scala> patternMatchWithPartialFunction(42) {
     |   case s: String => println("Found a string with value: " + s)
     |   case _ => println("Found something else")
     | }
Found something else
6
ответ дан 14 December 2019 в 19:05
поделиться

Этого должно быть достаточно, чтобы объяснить это: Знакомство с Scala: сопоставление с образцом

-1
ответ дан 14 December 2019 в 19:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: