click below
click below
Normal Size Small Size show me how
Learning Scala
Learn some properties Scala Language
Term | Definition |
---|---|
Expressões Regulares | Usa-se pipeline (|) separa alternativas, por exemplo: psicadélico|psicodélico, pode casar "psicodélico" ou "psicadélico". |
Expressões Regulares | Agrupamento com parênteses ((,)): psicodélico|psicadélico equivale a psic(a|o)délico. |
Expressões Regulares | Definição por Agrupamento: Define a quantidade de vezes que o elemento repete, por exemplo: ab*c casa com: "ac", ou "abc", ou "abbc", ou "abbbbc". |
Expressões Regulares | Caracteres que podem ser usados em uma expressão de quantificação: - Sinal de '+'. - Sinal de '*'. - Sinal de '?'. |
Expressões Regulares | Significado dos caracteres: - '*': indica 0 ou mais precedências do elemento. - '?': Indica 0 ou 1 ocorrência do elemento. - '+': Indica 1 ou mais ocorrência do elemento. |
Casamento de Padrões | Semelhante ao Switch Case do Java, C#, C++, Javascript, mas em cima de expressões envolvendo os construtores de alguma estrutura de dados. |
Casamento de Padrões | Usa-se a palavra-chave 'match' seguindo a expressão que queremos usar. |
Casamento de Padrões | Usando o 'match': def tamanho[T](lista::List[T]) : Int = lista match{ case Nil => 0 case h :: t => 1 + tamanho(T)} |
Casamento de Padrões | Operação de cabeça e cauda: x :: t casa com uma lista não vazia e associa 'x' à cabeça e 't' à cauda. |
Casamento de Padrões | _ :: x :: _ casa com uma lista com pelo menos dois elementos, associando x ao segundo elemento. |
Casamento de Padrões | • List(x,2,y) casa com uma lista de três elementos se o segundo elemento for igual a 2, e associa x ao primeiro elemento e y ao terceiro |
Case Classes | Exemplo de soma de 2 variáveis usando 'match': { case Number(n) => n case Sum(x, y) => x + y } |
Case Classes | Definição de uma classe completa, pode ser feita em uma só linha: Case class Aluno(nome: String) |
Case Classes | O símbolo '_ (underline)' pode ser usado para substituir qualquer variável, é chamado 'coringa': num1 match{ case Numero(1) => {...} case Numero(2) => { ...} case _ => {println("Não existe o número.")} |
Case Classes | Usando um padrão como lado esquerdo de um 'val': val h :: t = List(1,2,3) onde h é associado a 1, t a List(2,3). |
Case Classes | Uma expressão 'x' match { case p1 => x1 ... case pn => xn } primeiro avalia 'x' até obter um valor. |
Case Classes | Implementação de uma classe usando JAVA como intermédio: class Aluno(val nome : String){ def getNome : String = nome def == (a2 : Aluno) : Boolean = { nome.equals(as.nome) } } |
Expressões Regulares | Classes de caracteres: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:]. |
Casamento de Padrões | Um padrão como 'List(p1, p2, ..., pn)', casa uma lista que pode ser construída com o construtor “List” e argumentos que casem com os padrões p1, p2, ..., pn. |
Casamento de Padrões | Construções podem ser combinadas arbitrariamente para formar expressões aritméticas com números e operações de adição, subtração, multiplicação e divisão. |