Gerador (ciência da computação)

Em ciência da computação, um gerador (em inglês, generator) é um procedimento especial que pode ser usado para controlar iteradores de loops. Um gerador é muito similar para funções que retornam arrays (ou vetores), geradores podem ter parâmetros, que também podem ser chamados e geram uma sequência de valores. Entretanto, em vez de construir uma sequência que contenha todos os valores e os retornam de uma só vez, um gerador utiliza a palavra-chave yield para retornar os valores um de cada vez, que utiliza menos memória e permite o processamento de poucos valores rapidamente. Um gerador é uma função mas comporta-se como um iterador.

 Nota: Para outros significados de Generator, veja Generator.

As primeiras aparições de geradores foram na CLU em 1975, e atualmente são encontrados facilmente em softwares em linguagem de programação Python e C#. (em CLU e C# generators são chamados de iteradores).

Geradores são usualmente utilizados dentro de loops nas funções, que podem reduzir de grandes e demorados loops para únicos loops e rápidos.

Um exemplo de gerador em Python:

def contador(n):
    while True:
        yield n
        n += 1

for i in contador(10):
    if i <= 20:
        print i
    else:
        break

Em Python, um gerador pode ser pensado como um iterador que contém uma pilha. Sempre que é usado um iterador o método do next() é chamado, e é executado normalmente até o próximo yield ser alcançado. O gerador é congelado então outra vez, e o valor yield é retornado a quem o chamou. Os geradores computam seus valores yield somente por demanda, são úteis para representar as seqüências que são de difícil processamento pelo computador.

Ver também

Referências

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.