0Pricing
Ruby Academy · Aula

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.class

Os 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_id

Por 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.length

Convertendo 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.upcase

Sí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 == b

Sí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).inspect

Quando 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 greeting

Quando 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_sym e to_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

  1. Símbolos versus strings
  2. Criando e lendo hashes
  3. Iteração em hashes
  4. Valores padrão e mesclagem
← Voltar para Ruby Academy