O que são os dois pontos (:) em Ruby

Comecei a estudar Ruby a algum tempo, comecei a ver alguns tutoriais, exemplos, e quanto mais olhava menos eu entendia o que era os dois pontos (:) espalhados pelo código, pesquisei a respeito e encontrei esse post, e esse post, ambos do Fabio Akita, um cara muito influente na comunidade Ruby. E então vi que era na verdade muito simples, então para você que quer saber:

Os dois pontos são na verdade uma forma de referenciar uma variável do tipo ‘Symbol’, que é um dos tipos usados no Ruby (assim como Array, String, Hash, etc), Symbol é como uma Constante que armazena uma String, mas que não precisa ser instanciada, e que seu nome é examente igual a seu conteudo. E é MUITO usado como ‘índice’ nas Hashs, então ao invés de se fazer objeto['nome'] como costumamos em outras linguagens, em Ruby escrevemos objeto[:nome]

Mas ai você se pergunta: Qual a vantagem então, se eu posso usar uma simples string? Resposta: Memória.

Exemplo simples:

String

>> "texto".object_id
=> 23694732
    
>> "texto".object_id
=> 23683608

Symbol

>> :texto.object_id
=> 190292
    
>> :texto.object_id
=> 190292

Como podem ver, para cada nova chamada de “texto”, o Ruby criou um novo objeto na memória, com um novo id. Mas quando usamos um Symbol, o mesmo objeto é reutilizado todas as vezes.

Leave a Reply

* required (will not be published) * required
Post Comment

Do you need quickly support ?

Some text here...

* required
Send Message