Tại sao tính năng này không hoạt động?Tại sao `gửi` thất bại với tinh chỉnh Ruby 2.0?
module StringRefinement
refine String do
def bar
length
end
end
end
using StringRefinement
"abcdefghijklmnopqrstuvwxyz".send(:bar)
#NoMethodError: undefined method 'bar' for "abcdefghijklmnopqrstuvwxyz":String
Ai đó có thể giải thích lý do tại sao send
không hoạt động ở đây? Và có cách nào để tự động gọi các phương thức được xác định trong sàng lọc không? Tôi dường như không thể tìm thấy một giải thích tốt, đầy đủ về cách tinh chỉnh hoạt động trong Ruby 2.0.
Vì thử nghiệm? – texasbruce
@oldergod Thật sao? Tôi chỉ thử lại bằng cách sao chép và dán mã ở trên trực tiếp vào nâng lên và nhận được lỗi chính xác tương tự. Tôi cũng đang sử dụng 2.0.0-p0. Bạn có chắc bạn đang làm chính xác những gì tôi đã đăng không? –
@SeanMackesey bạn đúng, xấu của tôi. – oldergod