Przy użyciu Ruby 2.3:Dlaczego ten klucz ciągu w haszowniku przekonwertowany na symbol?
W przykładzie 1 klucz ciągowy "a"
jest automatycznie konwertowany na symbol, podczas gdy w przykładzie 2 pozostaje ciągiem.
Przykład 1
{"a": 1}
# => {:a=>1}
Przykład 2
{"a"=>"c"}
# => {"a"=>"c"}
Myślałem :
była taka sama jak hash rakietowego =>
składni starym stylu. Co się dzieje? Dlaczego nigdy nie zauważyłem tego w Railsach? Czy to ukrywa to w przypadku HashWithIndifferentAccess
?
@Zabba Dlaczego trzeba dodać, że wersja? Działa tylko w ostatnich Rubys. Jeśli OP mówi, że działa, oznacza to, że jest to ostatnia wersja. – sawa
OP wspomniał o tej wersji w pytaniu, więc nie należy jej usuwać, ponieważ usunięcie go zmieniłoby sens i intencję pytania, a więc po prostu bycie oryginalnym tutaj. – Zabba
To nie jest klucz łańcucha, to klucz symboliczny. Nic się nie zmienia. –