「初めてのRuby」を読むの続き
7章 メソッド
7.2 メソッドの定義
から
■7.2.1 def式
・メソッドを定義するにはdef式を使う
・メソッド内には任意の式を並べることが出来、
メソッドが呼ばれると実行
→メソッドの本体
・メソッド内で最後に評価された式の値が戻り値になる
■7.2.2 return
・メソッド内から陽に戻り値を返すにはreturnを用いることが出来る
・戻り値の式は省略可能
→省略してreturnだけ書くと、nilが返る
・returnは必須でない
→returnに出会わずメソッド末尾に到達すると
最後の式の値が戻り値
・多値の返却
returnの後に、カンマ区切りで複数の式を書くことが出来る
→配列が返る
呼び出し側では、多重代入の要領で多値として受け取る
多値を返す場合は、return必要
・値を返さないメソッドは存在しない
→返り値に使い道がない場合はnilを返す
■7.2.3 デフォルト値
・引数にデフォルト値を指定できる
→呼び出し時に指定しないとデフォルト値適用
・デフォルト値を持っている仮引数のことを省略可能な引数という
→デフォルト値が定義されていない引数を省略するとエラー
→Ruby1.8においては、省略可能な引数より後に
省略不能な引数が存在してはならない
・デフォルト値の評価コンテキスト
デフォルト値には任意の式を指定できる
→呼び出し時にデフォルト値が必要になると、毎回評価
→レシーバーのコンテキストで評価される
→式を都度評価する:メソッド定義時には確定しない
■7.2.4 可変長引数
・呼び出すケースことに引数の数が異なるもの
→pなど
仮引数の中のいずれか1つを、可変長引数の受け皿にすることができる
→*をつける:配列として割り当てられる
・スコープの発生
メソッド本体のローカル変数スコープは外部と完全に独立している
→メソッド本体の自由変数が外部環境によって解決されることはない
→クロージャーとは異なる。
7章 メソッド
7.2 メソッドの定義
から
■7.2.1 def式
・メソッドを定義するにはdef式を使う
・メソッド内には任意の式を並べることが出来、
メソッドが呼ばれると実行
→メソッドの本体
・メソッド内で最後に評価された式の値が戻り値になる
■7.2.2 return
・メソッド内から陽に戻り値を返すにはreturnを用いることが出来る
・戻り値の式は省略可能
→省略してreturnだけ書くと、nilが返る
・returnは必須でない
→returnに出会わずメソッド末尾に到達すると
最後の式の値が戻り値
・多値の返却
returnの後に、カンマ区切りで複数の式を書くことが出来る
→配列が返る
呼び出し側では、多重代入の要領で多値として受け取る
多値を返す場合は、return必要
・値を返さないメソッドは存在しない
→返り値に使い道がない場合はnilを返す
■7.2.3 デフォルト値
・引数にデフォルト値を指定できる
→呼び出し時に指定しないとデフォルト値適用
・デフォルト値を持っている仮引数のことを省略可能な引数という
→デフォルト値が定義されていない引数を省略するとエラー
→Ruby1.8においては、省略可能な引数より後に
省略不能な引数が存在してはならない
・デフォルト値の評価コンテキスト
デフォルト値には任意の式を指定できる
→呼び出し時にデフォルト値が必要になると、毎回評価
→レシーバーのコンテキストで評価される
→式を都度評価する:メソッド定義時には確定しない
■7.2.4 可変長引数
・呼び出すケースことに引数の数が異なるもの
→pなど
仮引数の中のいずれか1つを、可変長引数の受け皿にすることができる
→*をつける:配列として割り当てられる
・スコープの発生
メソッド本体のローカル変数スコープは外部と完全に独立している
→メソッド本体の自由変数が外部環境によって解決されることはない
→クロージャーとは異なる。