「初めてのRuby」を読むの続き
今日から6章
6章 変数と式
6.1 変数
から
■6.1 変数
・変数:オブジェクトにつける名札
■6.1.1 参照
・変数が保持するものは、オブジェクトへの参照
→オブジェクトそのもの、値そのものではない
→複数の変数が同じオブジェクトを
参照している可能性もある
・呼び出し元の変数とメソッドの仮引数がオブジェクトを共有
→メソッド内部で引数オブジェクトを変更すると、
呼び出し元へも兵供してしまう
→呼び出し元に影響を与えたくなければ
複製してから利用する
■6.1.2 変数の種類
・変数にはいくつかの種類があり、スコープが異なる
ローカル変数
インスタンス変数
クラス変数
グローバル変数
定数
・Rubyには、変数宣言という構文がない
→変数名によって、自動的に変数の種類が定まる
先頭1文字をみて判断する
■6.1.3 ローカル変数
・特定のメソッドや呼び出しやクラス定義、ファイル実行の中だけで利用できる
・特に理由がない限り、ローカル変数を使用する
・メソッド定義のdef・・・endを境界としてスコープ分離
→同名でも境界を越えたら別変数
→class・・・endやファイルもローカル変数のスコープを分離
・最初の代入式で発生
■6.1.4 インスタンス変数
・インスタンス定数は、特定のオブジェクトに属する変数
→同じオブジェクトのメソッドの間で共有
■6.1.5 クラス変数
・クラス変数は基本的にはクラスに属する変数
■6.1.6 グローバル変数
・どこからでも参照可能な変数
どこからでも代入できる
・組み込み変数:特殊なグローバル変数
$stdout,$1,$2など
■6.1.7 定数
・変更されない変数
→変更すると警告がでる(変更は出来る)
・特定のクラスやモジュールに属する
→クラス定義に含まれないものは
Objectクラスに所属
・ライブラリ:定数を提供してくれている
■6.1.8 擬似変数
・以下の7つの変数をさす
nil
true
false
self
__FILE__
__LINE__
__ENCODING__
・Ruby処理系が示すオブジェクトを参照
→ユーザーは定義できない
■6.1.9 識別名と変数名
・Rubyも変数めいめいには一定の制約
→かなり緩やか
→先頭文字以外は、ASCII記号を除く任意の印刷可能文字
または_
・予約語がある
・慣習的制約
大文字、小文字で単語を区切らない
→_で区切る
クラス名のみは例外でPascalStyleを用いる
今日から6章
6章 変数と式
6.1 変数
から
■6.1 変数
・変数:オブジェクトにつける名札
■6.1.1 参照
・変数が保持するものは、オブジェクトへの参照
→オブジェクトそのもの、値そのものではない
→複数の変数が同じオブジェクトを
参照している可能性もある
・呼び出し元の変数とメソッドの仮引数がオブジェクトを共有
→メソッド内部で引数オブジェクトを変更すると、
呼び出し元へも兵供してしまう
→呼び出し元に影響を与えたくなければ
複製してから利用する
■6.1.2 変数の種類
・変数にはいくつかの種類があり、スコープが異なる
ローカル変数
インスタンス変数
クラス変数
グローバル変数
定数
・Rubyには、変数宣言という構文がない
→変数名によって、自動的に変数の種類が定まる
先頭1文字をみて判断する
■6.1.3 ローカル変数
・特定のメソッドや呼び出しやクラス定義、ファイル実行の中だけで利用できる
・特に理由がない限り、ローカル変数を使用する
・メソッド定義のdef・・・endを境界としてスコープ分離
→同名でも境界を越えたら別変数
→class・・・endやファイルもローカル変数のスコープを分離
・最初の代入式で発生
■6.1.4 インスタンス変数
・インスタンス定数は、特定のオブジェクトに属する変数
→同じオブジェクトのメソッドの間で共有
■6.1.5 クラス変数
・クラス変数は基本的にはクラスに属する変数
■6.1.6 グローバル変数
・どこからでも参照可能な変数
どこからでも代入できる
・組み込み変数:特殊なグローバル変数
$stdout,$1,$2など
■6.1.7 定数
・変更されない変数
→変更すると警告がでる(変更は出来る)
・特定のクラスやモジュールに属する
→クラス定義に含まれないものは
Objectクラスに所属
・ライブラリ:定数を提供してくれている
■6.1.8 擬似変数
・以下の7つの変数をさす
nil
true
false
self
__FILE__
__LINE__
__ENCODING__
・Ruby処理系が示すオブジェクトを参照
→ユーザーは定義できない
■6.1.9 識別名と変数名
・Rubyも変数めいめいには一定の制約
→かなり緩やか
→先頭文字以外は、ASCII記号を除く任意の印刷可能文字
または_
・予約語がある
・慣習的制約
大文字、小文字で単語を区切らない
→_で区切る
クラス名のみは例外でPascalStyleを用いる