Publicado por fsomalia em 30, Agosto, 2008
No post anterior, você viu que o iterador é ótimo porque protege a sua coleção. O iterador foi a solução orientada a objeto para as coleções. O iterador permite o encapsulamento: ninguém precisa saber como meu objeto guarda essa coleção; se os clientes quiserem iterar por ela, é o iterador do meu objeto que dita as regras.
Só que em C#, a sintaxe para criar um iterador é um pouco trabalhosa. Convenhamos, se o iterador é uma coisa tão boa, porque é tão burocrático criá-los?
Ouvindo a voz da razão, a Microsoft incluiu no .NET Framework uma sintaxe mais direta para criar iteradores. Mas para você entendê-la, vou lhe apresentar minha amiga co-rotina! Leia o resto deste post »
Enviado em Programação | Tagged: iteradores, linguagem de programação, geradores | Deixar um comentário »
Publicado por fsomalia em 28, Agosto, 2008
Nos últimos dois posts, eu falei um pouco sobre o mundo normal da programação de laços de repetição. Agora, prepare-se para acessar a quarta dimensão da realidade. A chave para isso, pelo menos em C#, é o foreach:
string[] frase = new string[] {"foreach", "é", "que", "é", "bom"};
foreach (string palavra in frase)
{
Console.WriteLine(string);
}
Nós já vimos que o bloco mágico do foreach faz a inicialização, a incrementação e a verificação de parada, baseada na coleção passada. Essas atividades, no entanto, não são feitas do nada. Elas precisam ser especificadas em algum lugar do código.
Antes de dizer onde, vou contar uma história. A história da Pessoa que tinha vários Enderecos. Leia o resto deste post »
Enviado em Programação | Tagged: iteradores, linguagem de programação | 1 Comentário »
Publicado por fsomalia em 27, Agosto, 2008
No artigo anterior, eu dei um start no assunto de iteradores e, com a ajuda do velho amigo assembly, mostramos como um simples laço de repetição for é não-trivial internamente. Resumindo o artigo anterior, conseguimos identificar 8 blocos de código bem definidos:
- Inicializador do iterador
- Início do bloco iterativo
- Declaração da condição de saída
- Verificação da condição de saída
- Código iterativo
- Incrementador do iterador
- Reinicializador do bloco iterativo
- Fim do bloco iterativo
Veja que isso é um bocado de passos… E nem sempre precisamos nos preocupar com todos ele quando escrevemos um laço. De fato, a melhor sintaxe para repetição é aquela:
- Que permite alteração de qualquer um dos blocos construtivos (flexibilidade)
- Que assuma um comportamento padrão útil, caso o bloco não seja declarado (agilidade)
Dessa vez vou mostrar, com base nessa taxonimia (estou aprendendo palavras novas), como se comparam os outros laços de C#. Leia o resto deste post »
Enviado em Programação | Tagged: iteradores, linguagem de programação | 1 Comentário »
Publicado por fsomalia em 20, Agosto, 2008
Se você já programou algo que seja na vida, então provavelmente utilizou um laço de repetição. Algo como isso:
for (int i=0; i < 10; i++)
{
Console.WriteLine("Sei contar até " + i);
}
O cara acima é um laço for, cuja sintaxe é a mesma em 103,17% das linguagens baseadas em C. De fato, o código acima foi escrito em C#, mas tudo bem se você achou que era C, C++, Java, Java Script… Enfim, a lista é longa. Mas o que eu quero mostrar nesse artigo não é o bom, velho e conhecido for, mas o admirável novo mundo dos iteradores.
Leia o resto deste post »
Enviado em Programação | Tagged: iteradores, linguagem de programação | 2 Comentários »