これは私が自分のファイルを読んでいる方法です:
raw = File.open(fname) { |f| f.read }
&
引数を proc に変換する演算子など、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)
括弧でも機能しません ( raw = File.open(fname)(&:read)
)。
このショートカットを使用してファイルを開くにはどうすればよいですか? できないのなら、なぜですか?