【Ruby】配列とハッシュでは初期値の設定法が異なる
ことを私は知りませんでした……。
このせいで実装が上手く行かず、別の原因を探って右往左往の時間浪費。
馬鹿の極み。
自分の馬鹿さ加減のためにメモ。
配列に初期値を設定して新規作成する場合
ary = [:hoge, :fuga, :piyo]
これは恐らく誰でもご存知かなと思います。
ハッシュに初期値を設定して新規作成する場合は
# ☓ これでは配列の中にhashが作られてしまう hash = [hoge: :big, fuga: :medium, piyo: :small] # => [{:hoge=>:big, :fuga=>:medium, :piyo=>:small}] # ◯ 正しい宣言方法 hash = { hoge: :big, fuga: :medium, piyo: :small } # => {:hoge=>:big, :fuga=>:medium, :piyo=>:small}
角括弧ではなく、波括弧を使うこの書き方ですね。
よくこんな知識でコードを書いてたなと自分をぶん殴ってやりたい。
あたしってほんとカバじゃ済まないレベルの糞ミス。ミスというか知識。
ばーかばーか。