Warum wird dieser String-Schlüssel in einem Hash in ein Symbol umgewandelt?

Mit Ruby 2.3:

In Beispiel 1 ist der Zeichenfolgenschlüssel"a" wird automatisch in ein Symbol konvertiert, während es in Beispiel 2 eine Zeichenfolge bleibt.

Beispiel

{"a": 1}
# => {:a=>1} 

Beispiel 2

{"a"=>"c"}
# => {"a"=>"c"}

Ich dachte: war das gleiche wie die alte Hash-Rakete=> Syntax. Was ist los? Warum habe ich das bei Rails noch nie bemerkt? Ist es derHashWithIndifferentAccess das verdeckt das?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage