mit Ruby 2.3:Warum wird dieser String-Schlüssel in einem Hash in ein Symbol umgewandelt?
In Beispiel 1 wird der Stringschlüssel "a"
wird automatisch in ein Symbol umgewandelt, während bei Beispiel 2, bleibt es eine Zeichenfolge.
Beispiel 1
{"a": 1}
# => {:a=>1}
Beispiel 2
{"a"=>"c"}
# => {"a"=>"c"}
ich :
dachte, war die gleiche wie die alten Hash-Rakete =>
Syntax Stil. Was ist los? Warum habe ich das in Rails nie bemerkt? Ist es die HashWithIndifferentAccess
, die das verdunkelt?
@Zabba Warum haben Sie brauchen diese Version hinzufügen? Es funktioniert nur in den letzten Rubys. Wenn das OP sagt, dass es funktioniert, bedeutet dies, dass es sich um eine aktuelle Version handelt. – sawa
Das OP erwähnte diese Version in der Frage, daher ist es nicht angemessen, sie zu entfernen, da das Entfernen die Bedeutung und die Absicht der Frage verändern würde. – Zabba
Es ist kein String-Schlüssel, es ist ein Symbol-Schlüssel. Nichts wird geändert. –