WEB-TENNA

Webプログラマーの備忘録

【書きかけ】Rubyにおける変数の使い方をまとめ

ruby

ローカル変数

前提:先頭の文字を「小文字」もしくは、「_(アンダースコア)」で記述する。
例:hoge,_hoge
ダメな例:Hoge、HOGE

スコープ:

クラスやメソッド間や超えて参照することはできない、つまりそれが定義された間でしか使用することができない。

メソッドの壁を超えて参照することができずエラーがでる。おおよそどの言語もそうですね。
では、使いたい場合どうすればよいのか、それが次に紹介する「インスタンス変数」になります。

インスタンス変数

前提:「@」をメソッド名の前に置く
例:@hoge,@@_hoge

ゲッター

クラス外からインスタンス変数の値を取得・参照するには、クラス内にdef my_hogeのようにメソッドを定義する必要があります。
このインスタンス変数の値を取得するためのメソッドを「ゲッター」と呼びます。

initializeでセットされた文字が帰ってくるのがわかると思います。
このようにゲッターと呼ばれるメソッドを、記述しておくことによって変数のように値の取得が可能となります。

アクセスメソッド

基本的には@my_hogeなどのインスタンス変数の値の変更はクラス内でのみ変更することが可能です。
しかし、指定することにより、読み込み(attr_reader)、書き込み(attr_writer)、読み書き同時(attr_accessor)を外部から行うよう設定することができます。

読み込み(attr_reader)

書き込み(attr_writer)

読み書き(attr_accessor)

クラス変数

前提:「@@」をメソッド名の前に置く
例:@@hoge

スコープ

そのクラスとそこから生成されるオブジェクト(インスタンス)の中ならどこからでも参照可能。

 Related Posts