土地
Valaは列挙を提供します。ただし、これらをサブプログラムに対してローカルで定義することはできません。定数はサブプログラムに対してローカルに定義できますが、静的式として扱われないようです(疑似定数もそうです)。
ケース
switch
ステートメントを使用して構築されたステートマシンとして実装されたサブプログラムがいくつかあります。のように、いくつかを使用し、ステートメントにswitch (state) { … }
定数を使用したいと思います。これは、のようにリテラル定数を使用するよりも読みやすく、保守しやすいため、私が信じていることをお勧めします。case
case initial_state: { … }
case 0: { … }
のような宣言を使用して、サブプログラム内でこれらの定数を定義しようとしましたconst int initial_state = 0;
。しかし、ヴァラはそれぞれのケースステートメントで不平を言います。のように状態の列挙を定義しようとしましたenum State { initial_state, … };
が、Valaはこれを構文エラーとして拒否し、サブプログラムの外部でのみ列挙宣言を許可しているようです。
これまでのところ、すべての状態列挙をサブプログラムの外部として定義するか、サブプログラム内の定数を定義する必要がありますが、条件式では問題ないため、if
構成の代わりに構成を使用する必要があります。静的であること。switch
if
質問
Valaは、何らかの方法でサブプログラムに対してローカルで(スカラー型の)静的定数を定義することを許可していますか?