No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Ruby

Curso de Ruby

Simón Soriano

Simón Soriano

Tipos de datos III: Symbols

6/39
Recursos

Los symbols son un tipo de dato especial que utiliza Ruby para declarar constantes, esto existe para evitar que se generen más objetos y por lo tanto, no generar espacio de memoria adicional.

Para declarar un símbolo se utilizan los dos puntos “”:"", ejemplo:
color = :rojo

Aportes 16

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Símbolos

Un símbolo es el objeto más básico que puedes crear en Ruby: es un nombre y una ID interna. Los símbolos son útiles por que dado un símbolo, se refiere al mismo objeto en todo el programa. Por lo tanto, son más eficientes que los strings: dos strings con el mismo nombre, son dos objetos distintos. Esto implica ahorrar de tiempo y memoria.

    + Un símbolo parece una variable, pero está precedido de dos puntos. Ej: :action,
    :line_tines
    + Los símbolos no contienen valores como las variables
    + Es una cadena inmutable, osea que no se puede modificar en tiempo de ejecución.
    + Al ser inmutables, no se les puede pasar métodos
    + Cuando creo dos símbolos con el mismo valor, Ruby reciclara segundo, lo que genera mayor performance
    + Se recomienda su uso cuando no se necesita modificar el “strign”, cuando no necesito los métodos del “strign”, cuando necesito utilizar un nombre (como las claves de los hashes)

Conceptos extraídos de :

cuando dices que se re utiliza un symbol, es que ruby lo mantiene en memoria (incluido valor) dentro de la instancia donde se llame o por completo en el programa?

Cada vez que se ha usado un string, se ha creado un objeto nuevo. Por tanto, ¿cuándo usar un string, y cuándo un símbolo?

  • Si el contenido del objeto es lo importante, usa un string.
  • Si la identidad del objeto es importante, usa un símbolo.
    Al contrario que las cadenas (strings), los símbolos con el mismo nombre son inicializados y existen en memoria una sola vez en cada sesión de Ruby.

Symbol


# Este método nos sirve para saber el id único de esta variable
nombre.object_id

Los symbols son un tipo de dato en Ruby que se usa para declarar constantes, y evitar que ruby genere más objectos. Se recomienda utilizarlos en cosas como colores.

color = :rojo
color_2 = :rojo

Al ver cuál es el id del dato que creamos, nos daremos cuanta que Ruby le asigna el mismo a id a los objecto que tengan el mismo valor.

Es importante saber: los symbols no son strings, y serían el equivalente a una constante como JS. Y cuando reutizas un symbol, ruby se va ha encargar de reciclar la misma memoria.

Cada vez que se declara una variable en Ruby (objeto), se le asigna un identificador único. Para verlo se usa el método object_id.

Symbol es usado generalmente para declarar constantes, así se ahorra espacio ya que Symbol utiliza solo una dirección en memoria para un valor, por lo que si se declara otro Symbol con el valor de un Symbol ya declarado apuntará al mismo objeto.

color = "rojo" # string
color = :rojo # Symbol

Mezclando el curso de marca personal con el de Ruby
https://www.instagram.com/p/B6gUzronkrA/?igshid=vnn2e04relv0

Solo tengo una duda, Symbol solo para strings ?

y para que quiero declara dos variables con el mismo valor :rojo ??? osea que casos prácticos tiene Symbol?

Interesante el procesos symbols !!!

los simbolos son muy utiles para tener variables constantes , y obtimizar memoria ya que no crearan nuevos espacios en memoria sino que utilizara uno solo cuando los valores sean iguales

Excelente clase

Cuando se desea preservar el identificador de un objeto se usa un symbol, este se crea anteponiendo : al nombre del symbol. En global para toda la aplicación y lo podemos reutilizar. En caso se desee apuntar a otro espacio en memoria con la misma información se crea un string.

Que genial!, es raro que asignemos el mismo valor a otra variable siendo estas constantes pero por si acaso me parece Chido!, son como constantes en otrras palabras. me encanta que tengan ID cada variable ❤️

No me quedo muy claro el concepto. Que es un simbolo?

Muy importante nuestra mejor amiga la documentación:

https://www.ruby-lang.org/es/documentation/

¿cuándo usar un string, y cuándo un símbolo?

Si el contenido del objeto es lo importante, usa un string.
Si la identidad del objeto es importante, usa un símbolo.

Ruby usa una tabla de símbolos interna con los nombres de las variables, objetos, métodos, clases… Por ejemplo, si hay un método con el nombre de control_movie, automáticamente se crea el símbolo :control_movie. Para ver la tabla de símbolos Symbol.all_symbols