symbol の使用の注意点
2006.11.06
Lingoでは、状態を表す変数によく使う値としてシンボルというのがある。
pStatus = #waiting
のような形で #をつけて使うのだけど、こいつの落とし穴。
比較する際に正の整数と比較するとまずいことになる。
pStatus = #waiting
if(pStatus > 0) then
trace("hoge");
end if
実行結果は、"hoge"である。
内部ではInt扱いされてるっぽい。
なのでたとえば、pStatus が #waitingのときは停止中。 1~100をカウントしている間は歩行中。みたいにしていると、上のような場合、ずっとtrueがかえってきてしまうので要注意。
負の数だと、ちょっとテストしたところ、問題なさそうだけど、もしかしたら、#のあとの値によってはマイナスの値をとってる可能性は否定できない。
| カテゴリ | : | lingo |
| trackback url | : | http://blog.tokyoace4.com/cgi-bin/mt/mt-tb.cgi/716 |
(コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。)