Я только что прочитал этот ответ Converting upper-case string into title-case using Ruby.Что такое `&: capitalize` в Ruby?
Существует следующая строка кода
"abc".split(/(\W)/).map(&:capitalize).join
Что именно &:capitalize
? Прежде, чем я сам вложил это в irb, я бы сказал, это неправдоподобный синтаксис Ruby. Это должен быть какой-то объект Proc
, потому чтоnormaly берет блок. Но это не так. Если я помещу его в одиночку, я получаю syntax error, unexpected tAMPER
.
Причина, по которой это не работает в irb для вас, вероятно, потому что, как говорит sepp2k, она была запечена только в стандартной библиотеке Ruby 1.8.7, и я предполагаю, что вы используете более раннюю версию. Вы видите это довольно часто, хотя, поскольку ActiveSupport также бросает его, а ActiveSupport поставляется с Rails. Если вы попробуете его в скрипте/консоли Rails, вы, вероятно, обнаружите, что он работает. –
Возможный дубликат [Что означает карта (&: name) в Ruby?] (Http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby) –