「パーフェクトRuby」を読み返してみて
去年末から今年に掛けての正月休み中、「パーフェクトRuby」を読みました。
その後、Rubyでサンプルプログラムを作成していたところ
Rubyについて確認したいことが出てきたため、「パーフェクトRuby」を読み返しました。
以下、自分が確認したことについて、備忘録として残しておきます。
■モジュール
・モジュールからインスタンスを作ることはできない
→モジュールを名前空間として使う場合、特異メソッド(self.で始まる)として定義する。
・モジュール内で定義したメソッドを、クラスのインスタンスメソッドとして取り込める
→インスタンスメソッドとして取り込む場合、通常のメソッド(self.をつけない)として定義する。
・includeとextend
モジュール内で定義したメソッドを
includeはインスタンスメソッドとして取り込み
extendは特異メソッド(self.で始まる)として取り込む。
※参考サイト
http://pgnote.net/?p=107
■Procオブジェクト
・Proc.newとlambdaで作ったメソッドの違い
return時の挙動や、引数の数が一致しないとエラーとなる点など
lambdaの方が、通常のメソッドに近い動きをする。
・lambdaのシンタックスシュガーを用いた記述例
add = -> (x, y) {
x + y
}del = -> (x, y) {
x - y
}dev = -> {
6 / 2
}x = 5
y = 2p add.call(x, y)
p del.(x, y) #callなしでも可
p dev.call
小ネタですが、以上です。