RubyでProcsを理解しようとしていますが、これに対して私はいくつかのエクササイズを試みています。Ruby Procs - 構文エラーで終了する
まず私は、この行に
[1, 4, 5, 3].map(&:anything)
を入力し、その結果として、私はエラーを得た:
NoMethodError: undefined method
anything' for 1:Fixnum
.
は、その後、私はこれを試してみてください:
[1, 4, 5, 3].map(&:to_s)
そして新しい配列文字列に変換された数値が返されました:
=> ["1", "4", "5", "3"]`.
これらの2つの例では、[1, 4, 5, 3].map(&:anything)
のようなものを呼び出すと、配列内の各要素に対してanything
メソッドが呼び出されると結論づけられます。 Fixnumはanything
メソッドを実装していないため、最初の例はエラーで終了し、2番目の例は成功しました。
Fixnumに+
メソッドがある場合は、[1, 4, 5, 3].map(&:+2)
と呼ぶことができます。しかし、これは構文エラーで終了します。
syntax error, unexpected tINTEGER, expecting ')' [1, 4, 5, 3].map(&:+2)
をFixumが+
メソッドを持っている場合、この最後は私にこの構文エラーを与えているのはなぜ?私が間違っていることは何ですか?