【Ruby】パーフェクトRuby 学習感想文 ~第4章
それでは4章を読んでいきます。
(参考・経緯など)
パーフェクトRuby 学習感想文 ~はじめに
全体的に
4章はすごく読みやすかった!例が豊富で分かりやすい。
P116 やっぱり分からんインスタンス変数 @が付くの付かないの
P116のコード
■hoge5.rb
class Br def initialize @baked = false end def bake! @baked = true self end def baked? @baked end end b = Br.new p b.baked? ←falseが表示
これはいいんだけれども。
P53には、
「Ruler#length= のようなメソッド呼び出しのselfは省略できません
とある。
上のコードではself がなくない?かわりに@が付いてる?
selfを使って書き換えてみる。
■hoge6.rb
class Br attr_accessor :baked def initialize self.baked = false end def bake! self.baked = true self end def baked? self.baked end end b = Br.new p b.baked?
結果はfalse が出て同じ結果。
self.hoge と @hoge は同じなのかな。
P118 attr_accessorが分かりやすく書いてある
attr_accessor にインスタンス変数の名前を渡せばアクセサは自動的に定義されます
なるほど!attr_accessorも一つのメソッドだと理解すれば良かったのか。
この文でしっくりきました。
P52よりも、メソッドがリストで書いてあったりして、分かりやすい。
P133 extend もメソッドの一つなのか!
クラスもまたオブジェクトの1つですので、モジュールをextendすることができます。
という説明の中で以下のサンプルコードが。
o = Object.new o.extend Greetable
class Alice extend Greetable
なるほどねー。上の例はメソッドだと分かったけれども、
言われると下の例もメソッドとしての挙動に見える。
いつも何となくextends していたけれども考えたら何かの挙動をあらわすメソッドなんだよね。。
4章は比較的さくさくと完了。