私は最近 IBM の RPG の世界に入り込みました。コードを書いたり他の人のコードをレビューしたりしているうちに、Eval を使用する人もいれば Move を使用して同じことを達成する人もいることがわかりました。それらの間に違いはありますか?
ありがとう。
私は最近 IBM の RPG の世界に入り込みました。コードを書いたり他の人のコードをレビューしたりしているうちに、Eval を使用する人もいれば Move を使用して同じことを達成する人もいることがわかりました。それらの間に違いはありますか?
ありがとう。
私はバックの答えが好きですが、それを少し違った方法で説明するには...
MOVE の結果は、ソース変数と宛先変数の属性を調べることによってのみ知ることができます。また、MOVE がさまざまなシナリオでどのように機能するかについての深い知識を持っています。MOVEには暗黙の了解がたくさんあります。
一方、EVAL は基本的に一方向に機能します。MOVE を使用した場合と同じ結果になる可能性がありますが、$dec()、%char()、%subst() などのさまざまな組み込み関数 (別名 BIF) を明示的に利用する必要があります。
保守性の観点からは、EVAL が勝ちます。したがって、IBM が MOVE を離れた理由は、その兄弟が自由形式から外れたことです。