� verdade que o uso irrestrito de gotos podem levar a programas
grotescos. Mas isso � verdade para muitos outros mecanismos comuns
em linguagens (e.g., vari�veis globais).
Por outro lado, o uso restrito de gotos em determinadas situa��es
� bastante ben�fico. N�o por acaso, quase todas as linguagens
oferecem formas restritas de gotos, como break, continue, break com
label, continue com label, redo, etc. Como Lua sempre procurou poucos
mecanismos poderosos ao inv�s de uma mir�ade de mecanismos para
situa��es espec�ficas, nos pareceu bastante adequado introduzir um
simples goto ao inv�s de continue, break com label, e outros. (Seria
at� o caso de removermos 'break' para manter a linguagem pequena,
mas iria gerar muitos problemas de compatibilidade.)
Gotos tamb�m s�o �teis em outras situa��es espec�ficas, como
por exemplo programa��o de m�quinas de estado e c�digo gerado
automaticamente.
Por �ltimo, lembre-se que o fato de haver goto na linguagem n�o obriga
ningu�m a us�-lo :)
-- Roberto
> > Desde minha primeira linha de código, o *goto* sempre me foi dito como umaÉ verdade que o uso irrestrito de gotos podem levar a programas
> > funcionalidade nefasta produtora de código maligno. Cheguei até a vislumbrar
> > alguns trechos de código muito compromissados a provar isto.
> >
> > Aí vem a minha dúvida: por que lua resolveu adicionar o *goto?* Era mesmo
> > necessário? Vai mesmo adicionar algum valor à linguagem?
grotescos. Mas isso é verdade para muitos outros mecanismos comuns
em linguagens (e.g., variáveis globais).
Por outro lado, o uso restrito de gotos em determinadas situações
é bastante benéfico. Não por acaso, quase todas as linguagens
oferecem formas restritas de gotos, como break, continue, break com
label, continue com label, redo, etc. Como Lua sempre procurou poucos
mecanismos poderosos ao invés de uma miríade de mecanismos para
situações específicas, nos pareceu bastante adequado introduzir um
simples goto ao invés de continue, break com label, e outros. (Seria
até o caso de removermos 'break' para manter a linguagem pequena,
mas iria gerar muitos problemas de compatibilidade.)
Gotos também são úteis em outras situações específicas, como
por exemplo programação de máquinas de estado e código gerado
automaticamente.
Por último, lembre-se que o fato de haver goto na linguagem não obriga
ninguém a usá-lo :)
-- Roberto
--
Lua BR - http://groups.google.com/group/lua-br
Sim. Veja o manual:
http://www.corsix.org/lua/5.2-beta-annotated/manual.html#3.3.4
-- Roberto
Apena para mostrar o outro lado da moeda achei uma interessante página
[0] sobre o assunto.
[0] http://www.sergioprado.org/2011/02/15/voce-usa-goto-nos-seus-codigos-em-c/
Abraços.
2011/8/19 Italo Maia <italo...@gmail.com>:
> --
> Lua BR - http://groups.google.com/group/lua-br
>
--
Marcello Henrique
Blog - http://faraohh.wordpress.com
Equipe Web - Cercomp - UFG (www.cercomp.ufg.br)
Associação Software Livre de Goiás (www.aslgo.org.br)
^
. .
Linux
/ - \
Choice.of.the
.Next.Generation.