Símbolos vs strings
O Ruby tem duas formas de escrever o que parece a mesma palavra: a String "name" e o Symbol :name. O curso explica no que elas diferem e quando usar cada uma. Ele trata da sintaxe de symbol, de strings mutáveis e symbols imutáveis e da identidade de objeto, conferida com object_id e equal?. Mostra como o interning economiza memória e acelera comparações, por que symbols são as chaves de hash usuais e onde strings servem melhor. No fim, aborda to_sym, to_s e um pequeno desafio que converte chaves string em symbols.
O que você vai aprender
- ✓Sintaxe de symbol e a diferença entre as classes String e Symbol
- ✓Mudar uma string no lugar contra reatribuir uma variável
- ✓Identidade de objeto com object_id, equal? e ==
- ✓Como o interning afeta o uso de memória e a velocidade de comparação
- ✓Escolher entre dado e rótulo, incluindo chaves de hash com symbols
- ✓Conversão de valores com to_sym e to_s
Duas formas de escrever "a mesma palavra"
Os dois guardam as letras n-a-m-e e soam iguais lidos em voz alta. Mas são tipos diferentes de objeto: uma String e um Symbol, cada um com as próprias regras. Este curso cobre o que separa os dois e quando usar cada um.
Ler a aula completa grátis →Currículo
7 aulasDuas formas de escrever "a mesma palavra"
Apresenta String e Symbol como duas classes diferentes para valores com as mesmas letras.
Strings mutáveis, symbols imutáveis
Mostra como strings mudam no lugar, a diferença entre mutação e reatribuição e por que symbols não mudam.
Identidade de objeto: por que symbols são "o mesmo"
Usa object_id e equal? para mostrar que todo :active é um único objeto, ao contrário de literais de string.
Eficiência de memória e velocidade de comparação
Explica como o interning faz symbols economizarem memória e compararem por identidade, o que pesa em escala.
Quando usar symbols: chaves de hash e identificadores
Separa dado de rótulo para escolher entre string e symbol, com chaves de hash como uso principal.
Convertendo entre eles: to_sym e to_s
Trata de to_sym e to_s para converter nos dois sentidos, sem alterar o valor original.
Juntando tudo: escolhendo o certo
Monta um método symbolize_keys que converte chaves string de entrada em symbols, seguido de um pequeno desafio.