Skip to content
segunda-feira, julho 26, 2010 / eltonokada

Ruby e os símbolos

Meu primeiro contato com Ruby on Rails, foi em 2008 e confesso que estranhei muito toda a “feitiçaria” do Rails. Para quem está acostumado com Java o mundo de Convention over Configuration soa no mínimo estranho em um primeiro momento. Felizmente depois de algum tempo me familiarizei com a linguagem, com o framework e não quero outra vida😉

Como todos, comecei com o scaffold e analisando o código gerado o que me soou mais estranho foi essa sintaxe:

:alguma_coisa_estranha

Que isso ? dois pontos antes ?  que porra é essa ??

Se você também teve essa reação, vamos a explicação

:alguma_coisa_estranha é nada mais nada menos do que um Symbol em Ruby

Tá, blz isso é um Symbol, mas p que usar isso e essa sintaxe esotérica ? vamos lá

:alguma_coisa_estranha é a mesma coisa que “alguma_coisa_estranha”

ambos criam uma nova string alocando um espaço de memória reservado, e é aí que vem o pulo do gato, quando você usa a mesma string diversas vezes em seu código, da forma trivial

“alguma_coisa_estranha”

a cada vez que seu programinha ruby lê essa string ele faz o seguinte: String.new(“alguma_coisa_estranha”)

agora se você cria um símbolo

:alguma_coisa_estranha

e esse símbolo aparece várias vezes em seu programinha ruby ele não vai dar um Symbol.new(“alguma_coisa_estranha”) sempre, isso será feito apenas uma vez, é alocado um espaço de memória e a cada nova chamada ao invés do Symbol.new(“alguma_coisa_estranha”) o interpretador vai ler do mesmo endereço de memória criado no primeiro new do Symbol, economizando esforço do interpretador.

Sacou ? pronto era só isso agora nem ficou tão esquisito😉

Abraços!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: