あるオブジェクトを作りたい。
そのオブジェクトを作るには一時変数が必要だとする。
s1 = "pi"
s2 = "yo"
string = s1+s2 #=> "piyo"
とすると、中間結果s1
,s2
が残ってしまう。
そこで例えば、def below() yield end
によって、
string = below do
s1 = "pi"
s2 = "yo"
s1 + s2
end #=> "piyo"
みたいな感じで書きたい。
このdef below() yield end
と同じことする書き方が、ググれど意外にも見つからなくて、悩んでるというお話です。
標準の範囲内で、良い書き方を募集しております。
追記
yancya さんの
手続きオブジェクトを作ってそのまま実行する書き方である
-> { .. }[]
が良いと思いました。(たまに使わせてもらっています)
string = -> do
s1 = "pi"
s2 = "yo"
s1 + s2
end[]