17 de novembro de 2008

Explicando o nil em Ruby

O hotel aqui em Ambrose não é nem um pouco bom. As camas são todas tortas. O elevador é minúsculo. Um cara pôs toda sua bagagem no elevador e não sobrou mais lugar pra ele. Ele apertou o botão e as perseguiu pelas escadas. Mas as escadas eram muito estreitas e ele ficou entalado tentando subir.

Os mini-sabonetes que eles te dão são dimensionados para gnomos, então é impossível fazer uma espuma. Eu odeio isso. Toda hora eu confundo eles com lentes de contato.

Eu abri a torneira e nada saiu. O caso é o seguinte: Ambrose é um lugar com propriedades mágicas, então eu me arrisquei. Coloquei minha mão embaixo da torneira. Invisível, umidade morna. Eu senti a sensação de água corrente, passando pelos meus dedos. Quando tirei minha mão de lá, elas estavam secas e limpas.

Foi um incrível experiência de vazio total. Foi como nil.

Nil (Nada)

No Ruby, o nil representa o vazio. Ele representa falta de valor. Ele não é zero. Zero é um número.

É um morto-vivo do Ruby, uma palavra chave falecida. Você não pode adicionar à ele, ele não evolui. Mas ele é terrivelmente popular. É este esqueleto sorrindo nas fotos.

copo_plastico = nil

No código acima copo_plastico está vazio. Você pode argumentar que o copo_plastico contém algo, um nil. O nil representa vazio, logo, então, adiante-se e chame-o de vazio.

Alguns de vocês que já programaram antes estarão tentados a dizer que copo_plastico está indefinido (undefined). Que tal não. Quando você diz que uma variável está indefinida, você está dizendo que o Ruby simplesmente não tem lembrança da variável, ele não a conhece, ela absolutamente não existe.

Mas o Ruby está sabendo do copo_plastico. Ruby pode facilmente olhar dentro do copo_plastico. Está vazio, mas não está indefinido.

Retirado do livro http://why.nomedojogo.com/chapter-4.html

Nenhum comentário: