Símbolos versus strings
Saiba quando usar símbolos.
Símbolos versus strings é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.
O que é um Símbolo?
Um símbolo é um nome leve e imutável escrito com dois-pontos no início, como :name. Os símbolos costumam ser usados como identificadores e chaves de tabelas de dispersão.
status = :active
puts status
puts status.classOs Símbolos são Imutáveis
Ao contrário das cadeias de caracteres, os símbolos não podem ser alterados. Depois que :hello existe, ele permanece igual para sempre.
puts :hello.frozen?
puts "hello".frozen?Mesmo Símbolo, Mesmo Objeto
Cada uso do mesmo símbolo aponta para um único objeto compartilhado na memória. Duas cadeias de caracteres iguais geralmente são objetos diferentes.
puts :ruby.object_id == :ruby.object_id
puts "ruby".object_id == "ruby".object_idPor que os Símbolos Economizam Memória
Como símbolos idênticos compartilham um único objeto, usá-los como chaves repetidas é eficiente em termos de memória. As cadeias de caracteres criariam um novo objeto a cada vez.
ids = [:a, :a, :a]
puts ids.map(&:object_id).uniq.lengthConvertendo entre os Dois
Use to_sym para criar um símbolo a partir de uma cadeia de caracteres e to_s para fazer o caminho inverso.
word = "color"
sym = word.to_sym
puts sym
puts sym.to_s.upcaseSímbolos como Chaves de Tabelas de Dispersão
Os símbolos são as chaves mais comuns em tabelas de dispersão do Ruby porque são rápidos e nunca mudam.
person = { name: "Ada", age: 36 }
puts person[:name]
puts person[:age]A Sintaxe Abreviada
Quando as chaves são símbolos, name: "Ada" é uma forma abreviada de :name => "Ada". As duas formas criam chaves de símbolos.
a = { color: "red" }
b = { :color => "red" }
puts a == bSímbolos em Chamadas de Métodos
Os símbolos nomeiam métodos para ferramentas como send e map(&:method). A forma &:upcase transforma um símbolo em um bloco.
words = ["a", "b", "c"]
puts words.map(&:upcase).inspectQuando Usar uma Cadeia de Caracteres
Use uma cadeia de caracteres quando o valor for um dado que você exibirá, criará ou alterará: nomes, mensagens e conteúdo de arquivos. As cadeias de caracteres têm métodos avançados para texto.
greeting = "Hello"
greeting << ", world"
puts greetingQuando Usar um Símbolo
Use um símbolo para identificadores fixos: chaves de tabelas de dispersão, estados e nomes de opções. Eles indicam a intenção e nunca são alterados acidentalmente.
def move(direction)
puts "Moving #{direction}"
end
move(:north)Comparando Símbolos e Cadeias de Caracteres
Um símbolo e uma cadeia de caracteres com as mesmas letras não são iguais. Eles são de tipos diferentes.
puts :name == "name"
puts :name.to_s == "name"Verificação rápida
Avalie o que você sabe sobre símbolos.
Recapitulação
Agora você conhece a diferença:
- Símbolos são imutáveis, compartilhados e ideais como chaves e identificadores
- Cadeias de caracteres são dados de texto mutáveis e avançados
- converta com
to_symeto_s :a == "a"é falso
Próximo: criar e ler tabelas de dispersão.
config = { mode: :fast }
puts config[:mode]Perguntas Frequentes
A aula “Símbolos versus strings” é grátis?
Sim — o texto completo de “Símbolos versus strings” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.
O que vou aprender em “Símbolos versus strings”?
Saiba quando usar símbolos. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Símbolos versus strings”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Símbolos versus strings
- Criando e lendo hashes
- Iteração em hashes
- Valores padrão e mesclagem