Скала | Сопоставление с образцом
#ScalaСопоставление с образцом — это способ проверки заданной последовательности токенов на наличие определенного образца. Это наиболее широко используемая функция в Scala. Это метод проверки значения по шаблону.
Здесь вместо ключевого слова используется ключевое слово « match ». «Match» всегда определяется в корневом классе Scala, чтобы сделать его доступным для всех объектов. Это может содержать последовательность альтернатив. Каждая альтернатива будет начинаться с ключевого слова case . Каждый оператор case содержит шаблон и одно или несколько выражений, которые оцениваются, если указанный шаблон соответствует. Чтобы отделить шаблон от выражений, используется символ стрелки (=>) .
Пример 1:
// Scala программа для иллюстрации
// сопоставление с образцом
object Geeks {
// основной метод
def main(args: Array[String]) {
// вызов тестового метода
println(test(1));
}
// метод, содержащий ключевое слово match
def test(x:Int): String = x match {
// если значение x равно 0,
// этот случай будет выполнен
case 0 => "Hello, Geeks!!"
// если значение x равно 1,
// этот случай будет выполнен
case 1 => "Are you learning Scala?"
// если x не соответствует ни одной последовательности,
// тогда этот случай будет выполнен
case _ => "Good Luck!!"
}
}
Выход:
Are you learning Scala?
Объяснение: если в приведенной выше программе значение x, переданное в вызове метода test, совпадает с каким-либо из случаев, вычисляется выражение в этом случае. Здесь мы передаем 1, поэтому случай 1 будет оценен. case_ => — это регистр по умолчанию, который будет выполнен, если значение x не равно 0 или 1.
Пример 2:
// Scala программа для иллюстрации
// сопоставление с образцом
object Geeks {
// основной метод
def main(args: Array[String]) {
// вызов тестового метода
println(test("Geeks"));
}
// метод, содержащий ключевое слово match
def test(x:String): String = x match {
// если значение x равно "G1",
// этот случай будет выполнен
case "G1" => "GFG"
// если значение x равно "G2",
// этот случай будет выполнен
case "G2" => "Scala Tutorials"
// если x не соответствует ни одной последовательности,
// тогда этот случай будет выполнен
case _ => "Default Case Executed"
}
}
Выход:
Default Case Executed
Важные моменты:
- Каждое ключевое слово соответствия должно содержать хотя бы одно предложение case.
- Последний « _ », это « всеобъемлющий » случай, будет выполнен, если ни один из случаев не совпадает. Случаи также называют альтернативами .
- Сопоставление с образцом не имеет оператора разрыва.
- Сопоставление с образцом всегда возвращает некоторое значение.
- Блоки соответствия — это выражения, а не операторы. Это означает, что они оценивают тело любого совпадения случая. Это очень важная особенность функционального программирования.
- Сопоставление с образцом может также использоваться для присвоения значения и для понимания, не только в блоке сопоставления.
- Сопоставление с образцом позволяет сопоставлять любые данные с первой политикой сопоставления.
- Каждый оператор case возвращает значение, а весь оператор match фактически является функцией, которая возвращает совпавшее значение.
- Несколько значений можно проверить в одной строке с помощью « | «.