enumで設定した定数名で配列の要素を呼び出すと新規変数が作成されることがあるのですが
これはenumの使い方がまずいのでしょうか?
なにがどうなってるかわからなく、少しでもいいので解説して頂きたいです。
例えば
二行目でefFunc = 1の定数を作成したのですが
Effect.0.efFunc = 1
と書いて Effect.0.1 に代入しようとしても Effect.0.0に代入されてしまいます。
このときefFuncという変数が新規に作成されてしまうようです。
しかし、()をつけてEffect.0.(efFunc)とすればEffect.0.1に代入されます。
また、↓のコードについて [ef]→[ac]にすべて置換などを行った場合には
新規に変数が作成されるということはなく、enumで指定した定数が参照されて
こちらの理想通りに動くため
頭の中がハテナマークでいっぱいになっています。
#enum efNone = 0 #enum efFunc #enum efX #enum efCnt #enum efMax dim effect, 5, efMax //()つけないと新規変数が作成される effect.0.efFunc = 1 effect.0.efCnt = 2 effect.0.efx = 3 effect.0.(efFunc) = 4 effect.0.(efCnt) = 5 effect.0.(efx) = 6 repeat length2(effect) mes "aa"+cnt+":"+effect.0.cnt loop stop
結果
aa0:3
aa1:4
aa2:6
aa3:5