UnrealScriptは、関数とフィールドを次のようなブロックにグループ化/オーバーロードすることにより、状態(および潜在関数)を本質的にサポートしていることに常に感銘を受けています。
state() SomeState
{
...
function void Foo()
{
GotoState('SomeOtherState');
}
...
}
これは、すべての関数内で大量のswitchステートメントを使用するよりもかなりクリーンです(これは、契約によるほぼある種の設計です)。
これに似た状態宣言を本質的にサポートする(ビジュアルプログラミング言語やWorkflow Foundationなどのツールを無視する)他のより汎用的なプログラミング言語はありますか?
編集:
UnrealScriptの状態の利点のいくつかは、サブクラスのステートフル関数をオーバーライドでき、新しい名前付き状態を定義できることです。これは、特に単一継承のみをサポートするC#やJavaなどの言語で、さまざまな状態を実装する列挙型スイッチ(列挙型を拡張できない場合)、デリゲート、またはコクラスで行うのは面倒だと思います。