2012-04-07 4 views

Trả lời

10

Phương pháp tap đã được trong Ruby since 1.8.7:

tap {| x | ...} => obj

sản lượng x để khối, và sau đó trả về x. Mục đích chính của phương pháp này là "khai thác" một chuỗi phương pháp, để thực hiện các hoạt động trên các kết quả trung gian trong chuỗi.

Lưu ý rằng 1.8.6 không có Object#tap. Có lẽ, tap là trong các phiên bản cũ của Rails (như một miếng vá khỉ trên Object) nhưng đã được thêm vào bản thân Ruby trong 1.8.7. Kể từ khi 1.8.6 là khá cổ bây giờ, phiên bản Rails đã không được chấp nhận và, trong bản phát hành Rails gần đây, loại bỏ hoàn toàn.

1.9.3 vẫn có Object#tap vì vậy tap bản thân nó không bị phản đối, chỉ phiên bản vá Rails khỉ đã bị xóa.

+0

Xin lỗi sự thiếu hiểu biết của tôi khi tôi tìm hiểu các khái niệm cơ bản. Tôi cho rằng điều này có nghĩa là tôi vẫn có thể sử dụng nó. Khi bạn nói "gõ vào" bạn có nghĩa là nó giống như một 'keo' giữa các phương pháp khi một phương pháp không thể được gọi trực tiếp? – user1149642

+0

@ user1149642: có, bạn vẫn có thể sử dụng nó. Các tài liệu tôi liên kết có một số ví dụ. –

4

Object#tap miếng vá khỉ từ ActiveSupport không được chấp nhận vì nó là một phần của Ruby kể từ 1.9.0 và 1.8.7.