2011-09-05 35 views
10

Tôi biết tôi có thể làm điều này trong Ruby:Làm thế nào để tính toán 'bản đồ' trong Ruby mà không sử dụng các khối?

['a', 'b'].map do |s| s.to_sym end 

và có được điều này:

[:a, :b] 

Tôi đang tìm kiếm một cách ngắn gọn hơn để làm điều đó, mà không cần sử dụng một khối. Rất tiếc, điều này không hoạt động:

['a', 'b'].map #to_sym 

Tôi có thể làm tốt hơn mã ban đầu không?

Trả lời

11

Đọc một chút thông tin về Symbol#to_proc:

này hoạt động nếu bạn đang sử dụng của Ruby 1.8.7 hoặc cao hơn, hoặc nếu bạn đang sử dụng Rails - ActiveSupport sẽ thêm này chức năng cho bạn.

+0

Nó cũng hoạt động trên 1.8.7. 1.8.7 (chính): 0> RUBY_DESCRIPTION => "ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]" 1.8.7 (chính): 0> ['a', 'b '] .map (&: to_sym) => [: a,: b] – lucapette

+0

lucapette: Vâng, tôi đã chỉnh sửa nhanh để thêm/sửa một số thông tin. – PreciousBodilyFluids

+0

Vâng, tôi đã thấy nó. Bạn biết đấy, với tất cả các triển khai này, tôi có vấn đề với việc ghi nhớ nội dung. Khi tôi đọc trả lời của bạn, tôi đã đi kiểm tra tôi nhớ nó tốt;) – lucapette

Các vấn đề liên quan