MATERIAÇÃO DE PADRÃO SCILA

MATERIAÇÃO DE PADRÃO SCILA
A linguagem scala tem um recurso potente chamado Pattern Matching. Torna o código mais curto e mais fácil de ler, além de permitir a comparação de elementos com padrões complicados. É um método para comparar um valor com um padrão. É comparável às declarações de interruptor de Java e C. Neste tópico, aprenderemos as técnicas gerais de correspondência de padrões e como elas podem ser usadas para nossa vantagem.

Em vez de usar uma instrução Switch, a palavra -chave "Match" é utilizada aqui. A palavra "correspondência" é constantemente declarada na classe raiz de scala para garantir que todos os objetos possam acessá -lo. Um padrão e uma ou mais expressões estão incluídas em cada declaração de caso. Eles são avaliados apenas se o padrão declarado corresponder. O caractere de seta (=>) é empregado para diferenciar o padrão das expressões.

Componentes da correspondência de padrões em Scala

As expressões de correspondência são compostas de vários componentes:

    1. "Candidato" refere -se ao valor que usamos para corresponder aos padrões.
    2. A palavra -chave "correspondência".
    3. O código a ser executado quando o padrão corresponde, o padrão, a palavra -chave do caso e um símbolo de seta compõem muitas cláusulas de caso.
    4. Uma declaração padrão na ausência de uma correspondência de padrão. Porque contém o símbolo sublinhado (_) e vem após as cláusulas de caso, a cláusula padrão pode ser facilmente identificada.

Vejamos um exemplo simples para demonstrar esses elementos:

Exemplo 1: Combinação de padrões do tipo "int" em Scala

Como correspondência de padrão, um exemplo requer um valor inteiro e retorna um número inteiro também. Quaisquer parâmetros que não sejam inteiros não podem ser aprovados. Fazer isso resulta em um fracasso.


Dentro do script Scala, estabelecemos o objeto como "my_object" com o modificador de objeto Scala. Ele contém o método principal que usa o println para exibir a instrução. No método println, invocamos o método de teste. O método de teste pega o parâmetro do tipo inteiro "1". Em seguida, temos um método de abordagem funcional em que definimos o método de teste. O método de teste leva a variável "i" do tipo "int".

Definimos a palavra -chave "Match" com a variável "eu". Dentro da seção de blocos, as declarações do caso são usadas. Temos três casos aqui que retornam a expressão no caso satisfatório. A expressão incluída em um caso é avaliada se o valor de "i" corresponder a qualquer um dos casos. Desde que alcançamos sucesso nesta primeira tentativa, o caso 1 é avaliado. Se o valor de "i" não for 0 ou 1, o caso padrão que é "case_" é realizado.

Salvamos o programa Scala acima mencionado no “exemplo.Arquivo Scala ”. Em seguida, executamos o programa Scala com o nome do objeto que você deu no script. Aqui, temos “my_object”. Executamos este objeto com a palavra -chave scala. Como você pode ver, a expressão do caso 1 é obtida porque correspondia ao padrão.

Exemplo 2: Combinação de padrões do tipo "String" em Scala

Cada objeto em scala tem um tipo estático que não pode ser modificado porque é uma linguagem digitada. Um objeto da string do tipo, por exemplo, só pode ter as expressões de string. Como visto na ilustração a seguir, Scala simplifica comparar os objetos para digitar padrões.


Comece construindo o objeto do script scala anterior. O objeto recebe o nome "Linux_Object". Dentro do corpo desse objeto, temos a principal definição de função. O método println é invocado na definição principal da função, onde chamamos o método de teste e passamos o parâmetro de string "Saeed". Depois disso, temos uma função de teste em que a variável "x" é declarada da string de tipo.

Atribuímos o modificador de correspondência a essa variável "X" para um padrão correspondente dos casos. Dentro do bloco do método de teste, três casos são fornecidos com as expressões. Aqui, o caso do curinga “_” é executado porque nenhum padrão é comparado com a sequência “X”.

O script Scala é compilado com o modificador Scala e o nome do objeto "Linux_Object" do programa anterior. A saída obtida tem a expressão "caso padrão executado" do "caso_".

Exemplo 3: Combinação de padrões de classes de caso em Scala

As classes de casos são classes exclusivas que são utilizadas na correspondência de padrões baseados em expressão de caso. Estas são classes convencionais com o caso de modificador especial. O exemplo a seguir é uma ilustração simples da correspondência de padrões que usa a classe de caso:


Ao definir o objeto "my_demo", iniciamos este script Scala. Dentro do corpo do objeto "my_demo", temos uma definição de método principal. Aqui, declaramos as três variáveis ​​- "ciano", "dora" e "marrie" - com a palavra -chave "val". As variáveis ​​chamadas de classe "pessoa" com a nova palavra -chave e definem os valores como cada variável. Os valores passados ​​para a classe "pessoa" são os valores da string e o valor inteiro. Em seguida, iteramos através da lista das variáveis ​​“ciano”, “dora” e “marrie” usando o loop for e utilizamos as expressões de caso com o construtor do método “pessoa”, dando os valores.

A variável "ciano" é a expressão correspondente no primeiro caso, o nome "dora" é a expressão correspondente no segundo caso e, para quaisquer outros valores, os detalhes são mostrados conforme fornecido no último caso. O P_NAME e os parâmetros p_age são dados ao construtor da pessoa para um vazio. Por último, mas não menos importante, a pessoa da classe está vazia porque nenhum método deve ser definido dentro dele.

Quando o script Scala anterior é executado, ele exibe todas as expressões de correspondência de padrões do caso.

Conclusão

Este é um manual para a correspondência do padrão de scala. A correspondência de padrões em Scala é melhorada do que a troca de java. A palavra -chave MACK é usada para corresponder à entrada que foi fornecida em Scala. Aqui, analisamos uma breve introdução à funcionalidade de correspondência de padrões de Scala, juntamente com a sintaxe adequada e exemplos relevantes. A correspondência de padrões tem o benefício de ser incrivelmente versátil e extremamente poderoso. A estrutura de dados é dinamicamente destrutível dentro do padrão. As variáveis ​​específicas para essa expressão podem ser alocadas diretamente a esses componentes.