Tôi chỉ đọc câu trả lời này Converting upper-case string into title-case using Ruby.Chính xác là gì `&: capitalize` trong Ruby?
Có một dòng mã sau đây
"abc".split(/(\W)/).map(&:capitalize).join
gì chính xác là &:capitalize
? Trước khi tôi đã đặt nó vào irb bản thân mình, tôi đã có thể nói với bạn, nó không phải là cú pháp ruby hợp lệ. Nó phải là một loại đối tượng Proc
, bởi vì Array#map
normaly mất một khối. Nhưng không phải vậy. Nếu tôi đặt nó vào irb một mình, tôi nhận được syntax error, unexpected tAMPER
.
Lý do nó không hoạt động trong irb cho bạn có lẽ vì, như sepp2k nói, nó chỉ được đưa vào thư viện chuẩn trong Ruby 1.8.7, và tôi đoán bạn đang chạy phiên bản cũ hơn. Bạn thấy nó khá thường xuyên, tuy nhiên, bởi vì ActiveSupport cũng ném nó vào, và ActiveSupport đi kèm với Rails. Nếu bạn thử nó trong kịch bản/bàn điều khiển của Rails, bạn có thể sẽ phát hiện ra nó hoạt động. –
bản sao có thể có của [Bản đồ (&: tên) có ý nghĩa gì trong Ruby?] (Http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby) –