落書きノート

ふと自分が気になった事を書いてます

Ruby技術者認定試験合格教本 今回の成果

今回はグローバル変数について勉強になりました。

foo = 1

def bar
  foo #=> メソッドから外側のローカル変数は参照できないため、メソッド呼び出しとみなされる
end

bar #=> NameError:barメソッドのローカル変数fooは宣言されていないためエラー

baz #=> NameError:ローカル変数bazには対応する代入文がないためエラー

グローバル変数は、スクリプト中のどこからでも参照でき、初期化していないときに参照した場合はnilを返します。

$foo = 1

def bar
  $foo #=> ブロックの外側のグローバル変数$fooを参照
end

bar #=> 1: メソッドbarの$fooはメソッドの外側の$fooを参照

$baz #=> nil: 未初期化時のグローバル変数はnil

グローバル変数はどこからでも参照できると同時に、どこからでも更新出来てしまいます。特に理由がなければ、なるべくローカル変数を使いましょう…とのことです。

Ruby技術者認定試験合格教本 Silver/Gold対応 Ruby公式資格教科書
増井 雄一郎 小川 伸一郎 株式会社 日立ソリューションズ 牧 俊男
技術評論社
売り上げランキング: 209,635