存在使用替代像一个常见的成语:#with(对象)块招
def with clazz, &block
yield clazz
clazz
end
with Hash.new |hash|
hash.merge!{:a => 1}
end
有没有办法走的更远,并定义#with有这样的可能性:
with Hash.new |hash|
merge!{:a => 1}
end
甚至:
with Hash.new do
merge!{:a => 1}
end
?
UPDATE
后来无意中,我发现正是我一直在寻找(解决类似接受一个): http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/19153
更新加入2
到糖高/ dsl https://github.com/kristianmandrup/sugar-high
更新3
docille project on Github利用这个想法非常漂亮。
为了什么?你可以选择你的块变量尽可能短。你会节省什么?顺便说一句,你错过了'做'。 –
请关注问题!终于有可能吗? –
“有一个使用替换的常见习语,比如” - '[需要的引证]'。 –