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?

o inicia sesi贸n.

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 鈥渟trign鈥, cuando no necesito los m茅todos del 鈥渟trign鈥, cuando necesito utilizar un nombre (como las claves de los hashes)

Conceptos extra铆dos de :

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.

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?

Solo tengo una duda, Symbol solo para strings ?

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

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

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