Có một thành ngữ phổ biến của việc sử dụng thay thế như:#with (object) & chặn lừa
def with clazz, &block
yield clazz
clazz
end
with Hash.new |hash|
hash.merge!{:a => 1}
end
Có cách nào để đi xa hơn và xác định #with để có một khả năng thực hiện:
with Hash.new |hash|
merge!{:a => 1}
end
hoặc thậm chí:
with Hash.new do
merge!{:a => 1}
end
?
CẬP NHẬT
Sau đó vô tình tôi tìm thấy chính xác những gì tôi đang tìm kiếm (giải pháp tương tự như chấp nhận một): http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/19153
UPDATE 2
Nó đã được bổ sung vào đường cao/dsl trong https://github.com/kristianmandrup/sugar-high
CẬP NHẬT 3
docille project on Github khai thác ý tưởng này rất độc đáo.
cái gì? Bạn có thể chọn biến khối của bạn ngắn như bạn muốn. Bạn sẽ tiết kiệm được những gì? Và nhân tiện, bạn đã bỏ lỡ 'do'. –
Tập trung vào câu hỏi, vui lòng! Cuối cùng có thể không? –
"Có một thành ngữ phổ biến của việc sử dụng các thay thế như" - '[trích dẫn cần thiết]'. –