Utilizzo di Ruby 2.3:Perché questa chiave stringa in un hash è convertita in un simbolo?
Nell'esempio 1, la chiave di stringa "a"
viene convertita automaticamente in un simbolo, mentre con l'esempio 2 rimane una stringa.
Esempio 1
{"a": 1}
# => {:a=>1}
Esempio 2
{"a"=>"c"}
# => {"a"=>"c"}
ho pensato :
era lo stesso come il vecchio stile di hash razzo =>
sintassi. Cosa sta succedendo? Perché non l'ho mai notato in Rails? È lo HashWithIndifferentAccess
che sta oscurando questo?
@Zabba Perché è necessario aggiungere che la versione? Funziona solo nei recenti Rubys. Se l'OP dice che funziona, implica che si tratta di una versione recente. – sawa
L'OP ha menzionato quella versione nella domanda quindi non è appropriato rimuoverla poiché rimuovendola cambierebbe il significato e l'intento della domanda, quindi è solo essere originali qui. – Zabba
Non è una chiave di stringa, è una chiave simbolica. Niente è cambiato. –