読者です 読者をやめる 読者になる 読者になる

【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}

角括弧ではなく、波括弧を使うこの書き方ですね。

よくこんな知識でコードを書いてたなと自分をぶん殴ってやりたい。
あたしってほんとカバじゃ済まないレベルの糞ミス。ミスというか知識。
ばーかばーか。