8

論理式の短絡については誰もが知っています。

if ( False AND myFunc(a) ) then
...

条件が真になるmyFunc()方法がないため、わざわざ実行する必要はありません。if

あなたの毎日の代数方程式に相当するものがあるかどうか、私は興味がありました。

result = C*x/y + z

C=0最初の項を評価する意味がない場合。xyがスカラーである場合、パフォーマンスに関してはあまり問題になりませんが、それらが大きな行列であり、操作にコストがかかる (そして行列に適用できる) 場合、確かに違いが生じます。もちろん、if C!=0ステートメントを挿入することで、このような極端なケースを回避できます。

だから私の質問は、そのような機能が存在するかどうか、そしてそれが役立つかどうかです. 私はあまりプログラマーではないので、おそらく私が出会ったことのない名前でそうしています。もしそうなら、私に教えてください:)

4

2 に答える 2

1

データが大きく、複雑で、操作にコストがかかる場合、操作の実装では、コストのかかる操作を実行する前に、適切なショートカットチェックを実行する必要があります。これは、演算子(たとえば、行列*)の実装の内部詳細ですが、実際には「乗算」の言語概念とは関係がなく、計算の記述方法にほとんど影響を与えないはずです。

于 2011-11-16T03:06:47.243 に答える