Em Ruby, como escolher se um símbolo ou string será usado em um determinado cenário? - rubi

Eu vejo esta resposta em vários sites:

Se o conteúdo (a seqüência de caracteres) do objeto for importante, use uma string Se a identidade do objeto é importante, use um símbolo

Mas o que isso realmente significa? Por favor, me dê uma explicação que até mesmo um leigo possa entender.

Respostas:

5 para resposta № 1
a = :foo
b = :foo

a e b referem-se ao mesmo objeto na memória (mesma identidade)

a.object_id # => 898908
b.object_id # => 898908

Cordas se comportam de maneira diferente

a = "foo"
b = "foo"

a.object_id # => 70127643805220
b.object_id # => 70127643805200

Portanto, você usa strings para armazenar dados e realizar manipulações de dados (substituir caracteres ou outros) e usar símbolos para nomear coisas (chaves em um hash ou algo assim). Veja também esta resposta para mais casos de uso para símbolo.


Mais popular