UJMLサンプル107:変数のスコープの話(2006/05/05)
今回は変数のスコープの話を取り上げる。普通に宣言すると、グローバルな変数になるという話。
例えば、↓のようにgValという変数を宣言するのは普通にあることだが、この変数が include したステートマシン Inc の中でも使えるか?
---------
<ujml>
<application>
<state-machines>
<include file="include.ujms" state-machine="Inc" />
</state-machines>
<variables>
<var name="gVal" type="int"/>
</variables>
---------
もちろんそのまま使える。基本的に<application>エレメント内の<variables>で宣言した変数はグローバル変数だと思ってよい。この特性を活かせば、よくあるスクリプト言語のようにあっちのモジュールでこっちの変数を書き換えて、云々とでき最初に作るときは簡単だが、後からメンテするときの可読性は著しく低下するので要注意だ。
ソースコードを参考までに:
コメント