Array :: Único

Array :: Único é uma matriz de gravata que permite apenas valores exclusivos.
Baixe Agora

Array :: Único Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Gabor Szabo
  • Site do editor:
  • http://search.cpan.org/~szabgab/

Array :: Único Tag


Array :: Único Descrição

Array :: Único é uma matriz que permite apenas valores exclusivos. Array :: Único é uma matriz que permite apenas valores exclusivos.Synopsis Use Array :: Único; Tie @a, 'Array :: Único'; Agora use @a como um array regular.Este pacote permite criar uma matriz que permitirá apenas uma ocorrência de qualquer valor. Outras palavras, não importa quantas vezes você coloque em 42 ele manterá apenas a primeira ocorrência e o resto será cair. Você usa o módulo via empate e uma vez que você amarrou sua matriz a este módulo, ele se comportará corretamente. Auna é verificada com o operador 'eq', então entre outras coisas, é sensível a maiúsculas e minúsculas. Como um valor no array.examples usam Array :: Único; Tie @a, 'Array :: Único'; @a = qw (a b c a d e f); empurrar @a, qw (x b z); Imprimir "@an"; # a b c d e f x zwhen você está coletando uma lista de itens e deseja ter certeza de que há apenas uma ocorrência de cada item, você tem várias opções: 1) usando uma matriz e extrair os elementos exclusivos mais tarde. Você pode usar uma matriz regular para manter este conjunto exclusivo de valores e remover duplicatas em cada atualização por que manter a matriz sempre exclusiva ou remover duplicatas pouco antes de desejar usar o recurso de exclusividade da matriz. Em ambos os casos, você pode executar uma função que você chama @a = Único_value (@a); o problema com essa abordagem é que você precisa implementar a função exclusiva_value (veja mais tarde) e você terá que ter certeza de que você não se esqueça de ligar isto. Eu diria que não confie em lembrar disso. Há uma boa discussão sobre isso na 1ª edição do livro de receitas perl de O'Reilly. Eu copiei as soluções aqui, você pode ver mais discussões no livro. ---------------------------------------- Extraindo elementos exclusivos de uma lista (seção 4.6 em o livro de receitas Perl 1st ed.) #% direto visto = (); @uniq = (); foreach $ item (@list) [a menos que ($ visto {$ item}) {# Se chegarmos aqui, não vimos antes de $ visto {$ item} = 1; empurrar (@uniq, $ item); }} # Mais rápido% visto = (); foreach $ item (@list) {push (@uniq, $ item) a menos que $ visto {$ item} ++; } # Mais rápido, mas diferente% visto; foreach $ item (@list) {$ visto {$ item} ++; } @uniq = teclas% visto; # Mais rápido e ainda mais diferente% visto; @uniq = grep {! $ visto {$}} ++} @list; ---------------------------------------- 2) Usando um hash Algumas pessoas usam as chaves de um hash para manter os itens e colocar um valor arbitrário como os valores do hash: para construir essa lista:% único = map {$ _ => 1} qw (um dois dois três quatro!); Para imprimir: Print Junte "", classifique as teclas% exclusivas; Para adicionar valores a ele: $ Único {$ _} = 1 foreach qw (um após o nove oh nove); Para remover valores: excluir @unique {qw (oh nove)}; Para verificar se um valor está lá: $ exclusivo {$ valor}; # é por isso que eu gosto de usar "1" como meu valor (graças a Gaal Yahas para os exemplos acima) Há três desvantagens que vejo: 1) Você digita mais.2) Seu leitor pode não entender a princípio por que você usou Hash e quais serão os valores.3) Você perde a ordem.Uusamente não deles é fundamental, mas quando eu vi isso a 10ª vez em um código eu tive que entender com 0 documentação Eu fiquei frustrado.3) Usando Array :: Uniqueso Eu decidi escrever este módulo porque fiquei frustrado pela minha falta de compreensão O que está acontecendo nesse código que mencionei. Além disso, pensei que poderia ser interessante escrever isso e, em seguida, compará-lo. Além disso, é bom ter o seu nome exibido em luzes brilhantes por toda a CPAN ... ou pelo menos em um módulo.array :: Único permite amarrar um aray para hmmm, e garante que os valores da matriz são Sempre Único.Descer escrevendo isso, não tenho certeza se eu realmente recomendo seu uso. Eu diria ficar com a versão hash e documento que a variável está agregando uma lista exclusiva de valores.4) Usando o SetHere Real são módulos no CPAN que permitem criar e manter conjuntos. Eu não verifiquei nenhum desses, mas acho que eles tanto de um exagero para esta funcionalidade como único :: Array.Requirements: · Requisitos de Perl: · Perl.


Array :: Único Software Relacionado

Opções.PM.

Opções.PM é um módulo Perl de parsing da linha de comando destinado a imitar a sintaxe do módulo T.P.USAGE.Options. ...

208

Download