Identificadores de objetos e símbolos em Ruby

Identificadores de objetos: Link to heading

Em Ruby, cada variável declarada possui um identificador exclusivo (object_id) que se refere ao objeto que ela contém. Mesmo que duas variáveis ​​tenham o mesmo conteúdo, seus identificadores serão diferentes.

Exemplo: Link to heading

texto = "Olá"
texto_2 = "Olá"

texto.object_id # => 1234567890
texto_2.object_id # => 9876543210

# Embora o conteúdo seja o mesmo, os IDs são diferentes

Símbolos: Link to heading

símbolos são valores que não mudam ao longo do código. Eles são usados ​​para representar nomes de métodos, variáveis ​​e outras entidades que não precisam ser modificadas.

Exemplo:

cor = :red
cor_2 = :red

cor.object_id # => 1234567890
cor_2.object_id # => 1234567890

# Variáveis com o mesmo símbolo compartilham o mesmo ID

Os símbolos têm as mesmas propriedades das variáveis ​​normais: Link to heading

  • Eles podem ser usados ​​como chaves em hashes.
  • Eles podem ser usados ​​como argumentos de métodos.
  • Eles podem ser comparados com outros símbolos.

Converta um símbolo em uma string: Link to heading

:escarlate.class # => Symbol

:escarlate.to_s # => "escarlate"

Vantagens de usar símbolos: Link to heading

  • Eles são mais eficientes em termos de memória do que strings.
  • São mais rápidos de comparar do que as cadeias.
  • São mais fáceis de ler e entender do que strings.

Quando usar símbolos: Link to heading

  • Para nomes de métodos, variáveis ​​e outras entidades que não mudam.
  • Como chaves em hashes.
  • Como argumentos para métodos que esperam um nome de símbolo.

Em resumo: Link to heading

  • Os identificadores de objetos são únicos para cada variável, mesmo que tenham o mesmo conteúdo.
  • Símbolos são valores imutáveis ​​usados ​​para representar nomes de métodos, variáveis ​​e outras entidades.
  • Os símbolos são mais eficientes em termos de memória, mais rápidos de comparar e mais fáceis de ler do que strings.

Continue aprendendo sobre identificadores de objetos e símbolos para aproveitar ao máximo o Ruby!

<< Tipos de dados em Ruby Arrays em Ruby >>