« UJMLサンプル106:importとexportの話 その2 | メイン | UJMLサンプル108:importとexportの話とstate-machine そろそろまじめに学ばないとわからない »

UJMLサンプル107:変数のスコープの話(2006/05/05)

Samples_107_varscope 今回は変数のスコープの話を取り上げる。普通に宣言すると、グローバルな変数になるという話。

 例えば、↓のように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>で宣言した変数はグローバル変数だと思ってよい。この特性を活かせば、よくあるスクリプト言語のようにあっちのモジュールでこっちの変数を書き換えて、云々とでき最初に作るときは簡単だが、後からメンテするときの可読性は著しく低下するので要注意だ。

ソースコードを参考までに:

Download 107_main.ujml
Download include.ujms

トラックバック

この記事のトラックバックURL:
https://www.typepad.com/services/trackback/6a00d8341c2e2e53ef00e5509489b88833

UJMLサンプル107:変数のスコープの話を参照しているブログ:

コメント

この記事へのコメントは終了しました。