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