Acceder Registrarme

Cadena o symbolo en Ruby


Por: Fernando Hernandez Castro Publicado el: 2016-06-13 18:00:25 Pregunta cerrada
menu = {
  "pizza" => 20,
  "tacos" => 30,
  "arepas" => 25,
  "pollo" => 45,
  "pasta" => 50,
}

menu = {
  :pizza => 20,
  :tacos => 30,
  :arepas => 25,
  :pollo => 45,
  :pasta => 50,
}

Que tal compañeros tengo una duda y es la sig. cuando es recomendable usar cadena o symbolo, acontinuacion les anexe un pedaso de codigo como ejemplo. Saludos!



Ruby

Kevin Arnold Arias Figueroa Marcado como mejor respuesta
por el autor de la pregunta
Usuario de (Perú)

Hola Fernando... con respecto a tu pregunta, en ambos casos es válido... en realidad puedes usar cualquiera de las dos formas sin temer a que tengas algún inconveniento.

Saludos.

  • 2016-06-13 18:02:33
  • Me gusta(0)
Usuario de (No especificado)

Ah bueno, oye Kevin pero me imagino que abra ocaciones donde es mejor usar symbolo que cadena y asi viceverza o no?

  • 2016-06-13 18:07:49
  • Me gusta(1)
Usuario de (Perú)

En realidad no veo el caso... aunque como dices pudiera que si lo haya... sin embargo... es como cuando usas Json... las claves puedes ponerlo como cadena o de la forma normal que sería parecido a una variable... y ahí no hay diferencia. Entonces... en mi opinión... creo que no habría diferencia.

El ejemplo de Json sería este.

{nombre: 'Kevin Arnold', apellido: 'Arias Figueroa'}

/*O la otra forma*/

{'nombre': 'Kevin Arnold', 'apellido': 'Arias Figueroa'}
  • 2016-06-13 18:11:41
  • Me gusta(1)
Usuario de (No especificado)

ok ya entendi, pero llegue a pensar que para no crear multiples objetos que no se necesiten,  si no es necesario y si voy a estar reusando una cadena muchas veces, pense que era mejor utilizar un symbolo en lugar de una cadena xD

  • 2016-06-13 18:25:03
  • Me gusta(1)
Usuario de (Perú)

Fernando, por mucho que le des el mismo nombre, ten en cuenta que al ser claves de una variable general, en memoria se crea con variables distintas, es decir, cada variable que creas, tiene diferentes asignaciones en memoria del SO por lo que no habría diferencia. Ahora que si sería una variable "para cadenas" por así decirlo, ahí si tendría diferencia... pero al ser claves de un objeto, la situación no aplica por lo que usar de cualquiera de las dos maneras sería prácticamente igual.

  • 2016-06-13 18:28:53
  • Me gusta(0)
Usuario de (No especificado)

Ah ok, bueno. Gracias kevin x aclarar mis dudas.  Soy nuevo en esto de la programacion y ando haciendo mi mejor esfuerzo por aprender n_n

  • 2016-06-13 18:34:28
  • Me gusta(1)

  • Debes estar logueado para realizar comentarios