Tôi có một đối tượng Kết quả có chứa một mảng các đối tượng result
cùng với một số thống kê được lưu trong bộ nhớ cache về các đối tượng trong mảng. Tôi muốn đối tượng Results có thể hoạt động như một mảng. Lần cắt đầu tiên của tôi tại đây là thêm các phương thức như thế nàyLàm cách nào để thêm phương thức 'each' vào đối tượng Ruby (hoặc tôi nên mở rộng Mảng)?
def <<(val)
@result_array << val
end
Điều này cảm thấy rất giống và tôi biết Ruby có cách tốt hơn.
Tôi cũng muốn để có thể làm được điều này
Results.each do |result|
result.do_stuff
end
nhưng không chắc chắn những gì các phương pháp each
được thực sự làm dưới mui xe.
Hiện tại tôi chỉ đơn giản là trả về mảng cơ bản thông qua một phương thức và gọi mỗi phương thức đó không giống như giải pháp thanh lịch nhất.
Mọi trợ giúp sẽ được đánh giá cao.
Tôi biết có một cái gì đó như thế trong thư viện ruby. Bây giờ, nếu tôi chỉ có thể gắn dấu sao câu trả lời này để tìm nó sau này ... – vava
Bạn cần phải 'mở rộng Chuyển tiếp', không phải' bao gồm' nó. –
Thông tin tuyệt vời về chuyển tiếp nhưng làm theo cách đó không cho phép anh ta thao túng các giá trị. Anh ấy gọi một phương pháp vì vậy tôi giả sử anh ta muốn làm một cái gì đó với dữ liệu trước khi trả lại nó. Tôi có thể sai mặc dù. –