せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

【Ruby】パーフェクトRuby 学習感想文 ~第15章 その3

それでは15章を読んでいきます。

(参考・経緯など)
パーフェクトRuby 学習感想文 ~はじめに


 

P558 ブロックがいまいち分からない

def self.parse!(argv)
	cp = OptionParser.new do |opt|
		opt.on_head('-v','--version', 'show ver') do |v|
			opt.version = TodoSamp::VERSION
			puts opt.ver + "dayo"
			exit
		end
	end
		
	cp.parse!(argv)	
end

これ、どうしてブロック関数を使う必要があるんだろう?

 

cp = OptionParser.new do |opt|
	opt.on_head  ・・・
cp.parse!(argv)	
end

っていうのは、

opt =  OptionParser.new
opt.on_head ・・・
cp = opt

みたいなイメージ?

二つ目のvブロックに関しては、
ブロック内に「v」がいなくて、ほんと意味分からない。
ここら辺で一度脱線して、ブロック関数も抑えておきますか。。


全体的に15章はコードへの説明がないです。。
メソッド定義に、new.(argv).executeという一文が出てくる(P555)のだけれど、
初心者にはちょっと辛いかと思いました。こんな↓一言添えてみては。。

  • コンストラクタ生成もnewメソッドで行われること
  • メソッドチェーンになっていること
  • 「new」はレシーバーではないこと


 

P558 デフォルトの挙動。。

デフォルトの挙動を上書きしていることが、説明を読むだけでは理解できませんでした。
手を動かして、実際に自分が実装した内容が出力されているのを見て
「あー。デフォルトを上書きしているのね」と理解できました。。

『明示的に --versionを実装すること』がデフォルトの上書きを指すと分からなかった。
こうやって書けば当たり前に見えるけれど。。


眠いです。。。