徒然なるままに

学習メモがメインです

Rubyでif内の変数のスコープ

Rubyでif内の変数のスコープがわからなくなったので調べてみました。

環境

結論

  • if内で宣言した変数にifの外からでもアクセスできる。(if内の変数はif関係なく変数が宣言されている。)
  • Rubyではif内で変数のスコープを作らないため。

検証

if true
  hoge = "hogehoge"
else
  hage = "hagehage"
end

Rails c で確認

hoge
=> "hogehoge"

hage
=> nil

fuga 
NameError: undefined local variable or method `fuga' for main:Object

感想

他の言語だとifの前に変数を宣言しないといけないので違和感があります。これはこれで便利だと思います。

参考にさせていただいたサイト

https://doruby.jp/users/yokian/entries/【Ruby】変数やクラス定義などのスコープ