私は最近、これに似た何かをしようとしました:
a = "some string"
b = Proc.new{ upcase }
a.instance_eval b
エラーが発生します:
TypeError:Procを文字列に変換できません
しかし、これは機能します:
def b(&block)
"some string".instance_eval &block
end
b{ upcase }
この方法の詳細:
def b(&block)
"some string".instance_eval block
end
同じProc to String
エラーが発生します。
だから...ブロックについての私の理解は、それらが単なるprocであるということです。&
しかし、このアンパサンドを持つことには明らかに特別なことがあります...
誰かが私にこれを説明できますか?&block
通常のprocをこのオブジェクトの特別なものに変換することは可能ですか?
編集
私の2番目の質問を理解し&
、procの前に追加します...それは簡単でしたが、これは実際に何をしているのでしょうか?