GarciaSouza
32 posts
|
Venho a voz trazer-lhes mais uma esperiência com o irb que acontecem com a frequente falta doque fazer ( estou brincando, no momento estou em meio a um projeto ). Cá estava eu com meus botões brincando com array´s e loop´s e cheguei no seguinte código.
O engraçado que isso trava o IRB. Para destravar eu teclei Ctrl+C. Ainda no irb, queria saber oque aconteceu com a variável mas sempre que tentava ver travava dinovo, dai me veio a idéia de itera-lá da seguinte forma:
Isso gera um loop sem fim com o valor anterior que tentei adicionar no array enquanto o iterava.
E pra piorar as coisa acabei de ter a idéia de fazer o seguinte
#agora precione Ctr+C para destravar
a.each {|o| puts o}
Essa é bem pior.
Não acredita ? Veja com seus próprios olhos, faça o teste. Tá eu sei, é inútil isso, mas achei legal ficar descobrindo esses bugs.
|
Fagnasa
34 posts
|
Eu sei um, que não é bem um bug:
begin
retry
end
Ele vai mostrar o erro e vai mostrar uma menssagem. Leia a menssagem!
|
Nuxlli
14 posts
|
DrSombrio,
Na verdade isso não é um bug, o ruby segue corretamente o que você esta tentando fazer.
Diferente de outras linguagens, como o PHP neste exemplo, que criam uma copia de “a” quando inicia o processo de each, no ruby ele usa o mesmo objeto, o que evita uso desnecessário de memoria e pode ser útil em alguns casos.
|