Các tác dụng phụ giống nhau, điều này gây thêm một số nhầm lẫn cho kỹ thuật đảo ngược của bạn.
Có, cả hai đều lặp lại trên mảng (trên thực tế, trên bất kỳ thứ gì kết hợp trong Enumerable ) nhưng ánh xạ sẽ trả về Mảng bao gồm các kết quả khối trong khi mỗi cái sẽ chỉ trả về Mảng ban đầu.
Giá trị trả về của mỗi chỉ là mảng ban đầu và hiếm khi được sử dụng trong mã Ruby nhưng bản đồ là một trong những công cụ chức năng quan trọng nhất .
What map
does là trả về một mảng chứa kết quả của khối hoặc phương thức có tên được truyền vào. Ví dụ:
2.2.3 :001 > [:how, :now, :brown, :cow].map &:to_s
=> ["how", "now", "brown", "cow"]
Trong trường hợp này, tôi đã không chuyển một khối mà chỉ là một Symbol
, tuy nhiên class Symbol
các đối tượng có một to_proc
phương thức dẫn đến:
[:how.to_s, :now.to_s, ...]
BTW, bạn có thể gặp khó khăn trong việc tìm tài liệu vì bản đồ là một phương thức trong Enumerable trong khi mỗi (một phương thức được yêu cầu bởi mô-đun Enumerable ) là một phương thức trong Array .
Như một lưu ý đố: việc triển khai bản đồ dựa trên từng .