以下の方法がありますか?特定のメソッドが呼び出された場合にメタプログラミングを使用して行を追加する方法
メソッドが別のメソッドの本体の最後の行として呼び出されるときはいつでも、メソッド呼び出しを1組の行で囲む必要があります。
次の方法:私は考えることができる最も簡単な方法はtap
ある
def my_method
x = do_some_stuff
byebug
x
end
以下の方法がありますか?特定のメソッドが呼び出された場合にメタプログラミングを使用して行を追加する方法
メソッドが別のメソッドの本体の最後の行として呼び出されるときはいつでも、メソッド呼び出しを1組の行で囲む必要があります。
次の方法:私は考えることができる最も簡単な方法はtap
ある
def my_method
x = do_some_stuff
byebug
x
end
:
def my_method
do_some_stuff
byebug
end
がに変換する必要があります
def my_method
do_some_stuff.tap { |return_value| byebug }
end
tap
はブロック(開始を実行byebug)ブロックが復帰した後に受信機を返します。
byebug内では、var local
でローカル変数を調べることができ、現在の値はreturn_value
です。
は十分なメタプログラミングではありません:) –
これは途中ですが、問題は戻り値を調べることができるということです。なぜそれを変数に代入したいのですか? – user2320239
@ user2320239私は回答。 – Stefan
「特定の方法」(タイトルが言うように)、または最終的に(本体が言うように)どんな方法ですか? 「一対の線」は何を意味しますか? – sawa
私には、「特定の壁が緑色ならば、ハンマーでネジを掘る」のように聞こえます。これ以上の情報がなければ、間違った方法で問題に近づいていると言えます。達成しようとしていることを説明できますか? – Stefan
こんにちは私は私がしたいことをもっと詳しく見せるために私の例を編集しました。 – user2320239