Simbolos en Ruby

Es una cadena inmutable en tiempo de ejecución.

Cuando se crean dos cadenas, aunque tengan exactamente lo mismo, se crean dos objectos.

En cambio, si se crean dos símbolos, si ese símbolo ya existía con anterioridad, ruby no lo vuelve a crear y recicla el símbolo anterior.

 

A la hora de comparar dos cadenas, ruby debera comparar letra por letra a ver si son iguales.

En cambio con dos simbolos, ruby compara los object_id

¿Cuando se deben utilizar símbolos?

  • Cuando no se necesita modificar el string
  • Cuando no necesito los métodos del string
  • Los simbolos suelen ser utiles para nombres de cosas