Это, как я читаю мой файл:Как использовать амперсанд префикс с другими аргументами
raw = File.open(fname) { |f| f.read }
Я думал, что воспользоваться ярлыками в Ruby, такие как &
оператора, чтобы преобразовать свой аргумент в прок. Например, можно было бы использовать
nums = gets.split.map &:to_i # get numbers from stdin
Вместо
nums = gets.split.map { |x| x.to_i }
Итак, я попробовал:
raw = File.open(fname) &:read
И я получил ошибку:
path/to/file.rb:3:in `<main>': undefined method `&' for #<File:testing.txt> (NoMethodError)
Это Безразлично» t работает с круглыми скобками (raw = File.open(fname)(&:read)
) ,
Как я могу использовать этот ярлык для открытия файла? Если я не могу, то почему бы и нет?
Да, я не знал об этом. Круто. Кроме того, <вставьте здесь медицинскую шутку>. – iamnotmaynard
Просто небольшое разъяснение: я считаю, '' '' to_proc'; '&' - proc-to_block. –
@ Cary Swoveland ':' является частью символьного литерала. '' '' 'to_proc' для блокировки. – sawa