Looplex Knowledge Base
Unique
O tube unique recebe um vetor e retorna o mesmo vetor, excluídas as repetições de elementos. Um elemento é considerado igual ao outro segundo critério de impressão no texto. Sendo assim, especifique com cuidado o id em caso de vetores do tipo Struct.
Formato:
|vect|.unique()
Parâmetros:
- vect: Vetor a ser filtrado.
Retorno:
Retorna os elementos do vetor sem elementos idênticos.
O uso do unique não altera o vetor em si. Isto é, caso o vetor seja utilizado posteriormente, os elementos repetidos ainda estarão contidos dentro do vetor.
Exemplos:
1. Sort com vetor de String.
declarations { -|letras| : Vector[String] } operations { |letras|.add({"A", "A", "B", "B"}), print |letras|.unique() }
O exemplo acima printa a String "A e B".
2. Sort com vetor de String. Neste exemplo, temos um vetor que contém as alegações dos autores de uma peça. Um dos seus fields diz respeito ao índice de correção alegado pela parte. É possível que múltiplas partes selecionem o mesmo índice. Podemos usar o unique para printar os índices alegados por todas as partes de uma vez, sem que haja nenhuma repetição.
Primeiro, adicionamos o valor do field [indiceAlegado]
de cada autor a um vetor de string oculto |indices|
. Em seguida, podemos utilizar esse vetor, em conjunto com o unique, como se fosse um vetor sem nenhum elemento repetido.
declarations { +|vectAutores| : Vector[Struct] { name = "Alegações dos autores" fields { +[indiceAlegado] : List ("IGPM", "IPCA", "TJSP") { atomic = false name = "Selecione o(s) índice(s) de correção alegado(s) por este autor" } } }, -|indices| : Vector[String] } operations { foreach(<autor> IN |vectAutores|) { |indices|.add(<autor.indiceAlegado>) }, print |vectAutores|.grammar("O autor defende") & " que " & |indices|.unique().grammar("o índice") & " " & |indices|.unique() & " " & |indices|.unique().grammar("seja aplicado") & " no cálculo da correção monetária." }
Neste exemplo foi utilizado também o tube grammar para realizar a flexão de número das palavras.
Edit this page on GitHub