Symbols frente a strings
Cuándo usar symbols
Symbols frente a strings es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.
¿Qué es un símbolo?
Un símbolo es un nombre ligero e inmutable escrito con dos puntos iniciales, como :name. Los símbolos se usan a menudo como identificadores y claves de hashes.
status = :active
puts status
puts status.classLos símbolos son inmutables
A diferencia de las cadenas, los símbolos no se pueden modificar. Una vez que existe :hello, permanece igual para siempre.
puts :hello.frozen?
puts "hello".frozen?El mismo símbolo, el mismo objeto
Cada uso del mismo símbolo apunta a un único objeto compartido en memoria. Dos cadenas iguales suelen ser objetos distintos.
puts :ruby.object_id == :ruby.object_id
puts "ruby".object_id == "ruby".object_idPor qué los símbolos ahorran memoria
Como los símbolos idénticos comparten un objeto, usar símbolos como claves repetidas ahorra memoria. Las cadenas crearían un objeto nuevo cada vez.
ids = [:a, :a, :a]
puts ids.map(&:object_id).uniq.lengthConvertir entre ambos tipos
Use to_sym para crear un símbolo a partir de una cadena y to_s para hacer la conversión inversa.
word = "color"
sym = word.to_sym
puts sym
puts sym.to_s.upcaseLos símbolos como claves de hash
Los símbolos son las claves de hash más habituales en Ruby porque son rápidos y nunca cambian.
person = { name: "Ada", age: 36 }
puts person[:name]
puts person[:age]La sintaxis abreviada
Cuando las claves son símbolos, name: "Ada" es una forma abreviada de :name => "Ada". Ambas crean claves de símbolos.
a = { color: "red" }
b = { :color => "red" }
puts a == bSímbolos en llamadas a métodos
Los símbolos dan nombre a métodos en herramientas como send y map(&:method). La forma &:upcase convierte un símbolo en un bloque.
words = ["a", "b", "c"]
puts words.map(&:upcase).inspectCuándo usar una cadena
Use una cadena cuando el valor sea un dato que vaya a mostrar, construir o modificar: nombres, mensajes o contenido de archivos. Las cadenas tienen numerosos métodos para trabajar con texto.
greeting = "Hello"
greeting << ", world"
puts greetingCuándo usar un símbolo
Use un símbolo para identificadores fijos: claves de hash, estados o nombres de opciones. Indican la intención y no se modifican accidentalmente.
def move(direction)
puts "Moving #{direction}"
end
move(:north)Comparar símbolos y cadenas
Un símbolo y una cadena con las mismas letras no son iguales. Son tipos diferentes.
puts :name == "name"
puts :name.to_s == "name"Comprobación rápida
Determine cuánto sabe sobre los símbolos.
Resumen
Ahora conoce la diferencia:
- los símbolos son inmutables, compartidos e ideales como claves e identificadores
- las cadenas son datos de texto mutables y versátiles
- convierta entre ambos tipos con
to_symyto_s :a == "a"es falso
Siguiente: crear y leer hashes.
config = { mode: :fast }
puts config[:mode]Preguntas frecuentes
¿La lección «Symbols frente a strings» es gratis?
Sí — el texto completo de «Symbols frente a strings» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Symbols frente a strings»?
Cuándo usar symbols Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ruby Academy?
No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Symbols frente a strings»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?
Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Symbols frente a strings
- Creación y lectura de hashes
- Iteración de hashes
- Valores predeterminados y combinación