eval関数は、evalに与えた引数をプログラムとして扱えるもの。
irb(main):026:0* eval("puts \"abcde\"") abcde 「/」は、エスケープ。 evalの引数である puts "abcde" が実行されている。
eval関数を使って、配列の全要素の足し算等、四則演算もできる。
足し算
irb(main):020:0> a=eval([1,2,3,4,5]*?+) => 15 irb(main):022:0> puts a 15 eval([1,2,3,4,5]*?+) の「*?」の部分で配列の要素に対しての意味と思われる。 そして最後の「+」で全要素全てに足し算を実行する。
掛け算
irb(main):027:0> a=eval([1,2,3,4,5]*?*) => 120 最後の演算子が「*」なので、全ての要素を掛け算する。
割り算
irb(main):032:0> a=eval([100,2,2]*?/) => 25 最後の演算子が「/」なので、全ての要素を割り算する。
引き算
irb(main):033:0> a=eval([100,2,2]*?-) => 96 最後の演算子が「-」なので、全ての要素を割り算する。