Hatena::Grouprubyist

bongoleのRubyを楽しむ日記 このページをアンテナに追加 RSSフィード

Rubyを楽しむ日記

2007-07-17

[] do..end or {} ? 00:35  do..end or {} ? - bongoleのRubyを楽しむ日記 を含むブックマーク

#test.rb
p [1,2,3].collect { |i|
       i
  }.compact

と書くと

[1,2,3]

が表示されるけど、

#test.rb
p [1,2,3].collect do |i|
       i
  end.compact

と書くと

[1,2,3]

test.rb:3: undefined method `compact' for nil:NilClass (NoMethodError)

と表示される。

この違いがなんなのか説明できない。。。。orz

ちなみに実験環境

ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]