Identificadores de objetos y símbolos en Ruby

Identificadores de objetos: Link to heading

En Ruby, cada variable que se declara tiene un identificador único (object_id) que hace referencia al objeto que contiene. Aunque dos variables tengan el mismo contenido, sus identificadores serán diferentes.

Ejemplo: Link to heading

text = "Hello"
text_2 = "Hello"

text.object_id # => 1234567890
text_2.object_id # => 9876543210

# Con los strings, aunque el contenido pueda ser el mismo, los IDs son diferentes

Símbolos: Link to heading

Los símbolos son valores que no cambian a lo largo del código. Se utilizan para representar nombres de métodos, variables y otras entidades que no necesitan ser modificadas.

Ejemplo:

color = :red
color_2 = :red

color.object_id # => 1234567890
color_2.object_id # => 1234567890

# Variables con el mismo simbolo comparten el mismo ID

Los símbolos tienen las mismas propiedades que las variables normales: Link to heading

  • Se pueden usar como claves en hashes.
  • Se pueden usar como argumentos de métodos.
  • Se pueden comparar con otros símbolos.

Convertir un símbolo a una cadena: Link to heading

:red.class # => Simbolo / Symbol

:red.to_s # => "red"

Ventajas de usar símbolos: Link to heading

  • Son más eficientes en memoria que las cadenas.
  • Son más rápidos de comparar que las cadenas.
  • Son más fáciles de leer y entender que las cadenas.

Cuándo usar símbolos: Link to heading

  • Para nombres de métodos, variables y otras entidades que no cambian.
  • Como claves en hashes.
  • Como argumentos de métodos que esperan un nombre de símbolo.

En resumen: Link to heading

  • Los identificadores de objetos son únicos para cada variable, incluso si tienen el mismo contenido.
  • Los símbolos son valores inmutables que se utilizan para representar nombres de métodos, variables y otras entidades.
  • Los símbolos son más eficientes en memoria, rápidos de comparar y fáciles de leer que las cadenas.

¡Sigue aprendiendo sobre los identificadores de objetos y símbolos para aprovechar al máximo las ventajas de Ruby!

<< Tipos de datos en Ruby Los Arrays en Ruby >>