From: rubikitch@... Date: 2008-04-16T04:32:52+09:00 Subject: [ruby-dev:34410] defined?の挙動 るびきちです。 defined?の挙動について気になります。 class Object def p1 p self; self end alias p2 p1 end defined? 1.p1 # => "method" defined? 2.p1.p2 # => "method" defined? [10].each # => "method" defined? [20].each{|x| p x} # => "expression" # >> 2 # >> 20 「defined? 2.p1.p2」の場合、「2.p1」が評価されるのは仕様ですか? また、ブロック付きメソッド呼び出しは"method"ではなくて"expression"になります。 しかも式そのものを評価しています。これは意図した仕様ですか? Ruby 1.8、Ruby 1.9双方でも同じ結果です。 -- rubikitch Blog: http://d.hatena.ne.jp/rubikitch/ Site: http://www.rubyist.net/~rubikitch/