Скала | Сопоставление с образцом

Скала | Сопоставление с образцом

#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 фактически является функцией, которая возвращает совпавшее значение.
  • Несколько значений можно проверить в одной строке с помощью « | «.


Report Page