yuumi3 です、
るびきちさん回答ありがとうございます。

なるほど、これなら タイプが少なくて良いですね!

ただし、今回ほしいのは初心者が使えるような、なるべく頭を使わずに機械的に
戻り値を表示する方法がないかな? と考えています。

こんな感じで

def max(a, b)
  print_arguments(a, b)

  if (a > b)
   a
  else
   b
 end

 print_return_value
end


または、set_trace_func()などを使った、メソッド単位のトレースが出来るモ
ジュールとかあるでしょうか?


宜しくお願いいたします。



rubikitch wrote:
> From: Yuumi Yoshida <yuumi3 / ey-office.com>
> Subject: [ruby-list:42612] メソッドの戻り値を知る方法
> Date: Sat, 29 Jul 2006 11:20:59 +0900
> 
> るびきちです。
> 
>> 以下のコードのコメントに書いたような事をしたいのですが
>>
>> def max(a, b)
>>   if (a > b)
>>     a
>>   else
>>     b
>>   end
>> # ここでメソッドの戻り値を表示(p) したい!
>> end
> 
> p してそのオブジェクトのを返すメソッドを用意するといいです。
> 
> # pでもかまいませんが、ppはきれいな形で表示してくれます。
> 
> require 'pp'
> class Object
>   def d
>     pp self
>     self
>   end
> end
> 
> なのでこうでしょうか。
> ちなみにifは「式」なので値を持ちます。
> 
> def max(a, b)
>   if (a > b)
>     a
>   else
>     b
>   end.d
> 
> end
> 
> また
> [1,2,3].d.map{|x| x*2}
> のように式の途中に挟み込むことも可能です。
> 
> --
> rubikitch
> http://www.rubyist.net/~rubikitch/
> 


-- 

♪  吉田 裕美 (Yuumi Yoshida)
♪    Blog      http://d.hatena.ne.jp/yuum3/
♪    HomePage  http://www.ey-office.com/