Objeto :: Lexical.

Açúcar sintático para facilitar os dados da instância de objetos e mais
Baixe Agora

Objeto :: Lexical. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Scott Walters
  • Site do editor:
  • http://search.cpan.org/~swalters/Math-Preference-SVD-0.01/lib/Math/Preference/SVD.pm

Objeto :: Lexical. Tag


Objeto :: Lexical. Descrição

Açúcar sintático para dados de instância de objetos fáceis e mais Objeto :: Lexical é um módulo Perl que fornece açúcar sintático para criar objetos.Normal minhas variáveis são usadas para dados de instância. $ Isso é automaticamente lido fora da pilha de argumentos. Isto segue "Real" OO idiomas, onde o código do usuário não precisa se preocupar com a ajuda do idioma implementar objetos. O código Perl OO é feio, difícil de ler, tedioso para digitar e errar. A sintaxe> Sintaxe de $ Auto-{é incompatível, e usando um campo de objeto com um push () embutido (), requer sintaxe além dos programadores do Novice Perl: push @ {$ auto-{field}}, $ valor>. Os nomes de campo de ortografia Os resultados errados em dificuldades para encontrar insetos: os autoviivados hash, e nenhuma "variáveis devem ser declaradas" O aviso é emitido.Instance () retorna um novo objeto que subclasse o objeto atual e contém todos os métodos justos definidos. O objeto retornado é uma referência de tabela de símbolos abençoados (STASH), que funciona como uma referência abençoada de hash para a maioria dos propósitos. Em outras palavras, é um objeto normal.Instance () leva um argumento opcional: o nome do pacote que o objeto que está sendo criado é pertencer. Se o novo () método, lê o nome da classe desativado da pilha de argumentos, este nome de classe deve ser passado para instância (), para suportar a criação de subclasses da sua classe. Isto é semelhante à operação do abençoe (), exceto instância () lerá o nome da classe fora da pilha para você se você não fizer. O método de uso :: Linha lexical leva argumentos opcionais: "nononlex" Especifica que não Os métodos definidos lexicais não devem ser movidos. Métodos definidos usando * Nome = Sub {} e Sub nome {} não serão movidos. Se sub-rotinas forem criadas fora do bloco sub new {}, esta opção deve ser especificada, ou então as sub-rotinas desaparecerão misteriosamente. "Noexport" Especifica esse método () e instância () não deve ser exportado para o seu namespace. Para obter nessas funções, você precisará qualificar seus nomes: Objeto :: Lexical :: Método () e Objeto :: Lexical :: Instância (), respectivamente. "Nowrap" Especifica que os métodos devem ser envolvidos na lógica que lê $ ser automaticamente, pois são movidos para sua nova tabela de símbolos. Se você quiser se referir a $ isso como $ _ , ou você deseja processar você mesmo, ou deseja manter o uso de memória em par com objetos normais, use este.instance () é o coração deste módulo: lexicamente escopo Métodos (Coderefs realizados em minhas variáveis) e os métodos colocados na tabela de símbolos são movidos para um novo namespace criado apenas para essa instância de objeto. Um invólucro fino é colocado em torno de cada entrada de tabela de símbolos neste namespace que lê a referência ao objeto atual em uma nossa variável chamada $ Este.Qualquer número de objetos independentes pode ser devolvido por NOVO (). Ao definir métodos no lado, o bloco do novo () método, cada objeto retornado tem suas próprias cópias privadas de cada uma minha variável. Isso usa o recurso "Lambda Fechamento" do Perl. Um fechamento é o código que contém referências a variáveis - Neste exemplo, $ contador vai sair do escopo, mas Inc, dezembro, inc3x tudo manter uma referência a ela. A próxima vez que o novo () é executado, um novo contador de $ lexical será criado, e novos métodos serão criados que se referem que isso serve para evitar a sintaxe de $+ {counter} ++>, facilitando a sintaxe. Código, mova o código em métodos de sub-rotinas e ative os módulos antigos simples em objetos.Synopsis use objeto :: lexical; Use sub :: lexical; sub new {meu contador; nosso $ isso; Meu Sub Inc {$ Contador ++; } Minha Sub Dec {$ Contador--; } meu subnc3x {$ this-> inc () para (1..3); } instância(); } Requisitos: · Perl.


Objeto :: Lexical. Software Relacionado