Tôi đang tìm cách 'bản đồ' một mục duy nhất trong Ruby.Bản đồ Ruby() cho một đối tượng duy nhất
Tôi muốn gọi hàm này và chuyển cho nó một khối, đối tượng sẽ được mang đến khối, và sau đó kết quả của khối sẽ được trả lại cho người gọi. Chính xác những gì bản đồ nào, nhưng đối với một phần tử duy nhất.
Động cơ là đôi khi bạn tạo ra các đối tượng chỉ được sử dụng để xây dựng một thứ khác. Đối tượng ban đầu sau đó không còn cần thiết nữa. Nó sẽ là tốt đẹp để chỉ cần đặt chuyển đổi thành một khối và loại bỏ tạm thời.
Ví dụ: giả sử rằng tôi muốn tạo số nguyên đại diện cho kết hợp tháng/năm. Cho ngày hôm nay, mã sẽ giống như thế:
day = Date.today
month_number = day.year * 100 + day.month
tôi thực sự thích nó nếu tôi có thể làm điều gì đó như:
month_number = Date.today.some_function { |d| d.year * 100 + d.month }
Nhưng tôi không biết những gì 'some_function' là (hoặc nếu nó còn tồn tại).
Nếu có cách nào Ruby xử lý một cái gì đó như thế này, tôi là tất cả tai. Tôi nhận thức được các lớp vá khỉ, nhưng tôi đang tìm cách xử lý những trường hợp đó một chút thoáng qua.
[ 'Object # tap'] (http://ruby-doc.org/core-1.9.3/Object.html#method-i-tap) là rất gần nhưng nó doesn' t trả về giá trị của khối ... – maerics
Một cái gì đó như thế nào? m = lambda {| d | d.year * 100 + d.month} .call (Date.today) – Kaeros
Xem câu trả lời của @jondavidjohn. Được xây dựng trong và không có chi phí ràng buộc proc. –