ソラマメブログ

2009年02月07日

論理演算子がショートサーキットしない件

4/26オフィスアワーの報告 | iNNX ブログ
-----

-----
LSLのVMが「スタックマシン」であることを考えると、後ろから順にスタックに積まれていくのは当然なのかもしれません。
-----
とあるんだけれど そういうわけで(どういうわけで? w)演算子は左側から実行されることになっていて
-----
スクリプターズカフェ/ログ/LSLでの演算の優先順位 - Second Life in Japan - a Wikia wiki
-----
にサンプルがあるんだけど 実際 左側から実行されるというのは こういう意味ね というのがわかるわけなんだけれど
-----
これだけなら まあ それほど実害は無いんだけれど
-----
LSL Wiki : Boolean
-----

-----
Unlike most modern programming languages with optimizing compilers, the boolean operators in LSL do not short-circuit.
-----
とあるように lsl の論理演算子はショートサーキットしない 上に 上記のように 左側から実行してしまうので
-----
LSL does not do this, so if you're expecting it, it may make your code less efficient, or worse yet, incorrect if you're expecting a function in the second half of an || or && not to be called.
-----
とあるように(それに気が付いてないと)効率上の問題 や バグの原因 になってしまうので 要注意だ
-----
ちなみに
-----
LSL Wiki : IfElse
-----

-----
Note: Because of the way LSL parser works (more details: http://w-hat.com/stackdepth), conditions in LSL are evaluated left to right, instead of right to left as in most programming languages.
-----
とあるのは全く逆だよな~(ただでさえ混乱してるのに)混乱に輪をかけるようなことを w

同じカテゴリー(walking のスクリプティング講座)の記事
 プロフィール写真の表示に問題 (2009-11-30 20:55)
 ミニ太陽系 (2009-03-21 06:03)
 関数から文字列を返したら何か問題になる? (2009-03-18 18:02)
 llListFindList って型って関係ないんだったっけ (2009-03-18 14:02)
 夏時間(PDT)の実験 (2009-03-08 22:04)
 15パズルの作り方(その3) (2009-03-08 06:03)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。