gpt4 book ai didi

programming-languages - 哪些编程语言支持语言级别的状态?

转载 作者:行者123 更新时间:2023-12-03 18:28:10 24 4
gpt4 key购买 nike

UnrealScript在某种程度上,它总是给我留下了深刻的印象,它通过将函数和字段分组/重载到 block 中来对状态(和潜在函数)的内在支持,例如:

state() SomeState
{
...
function void Foo()
{
GotoState('SomeOtherState');
}
...
}

这比在每个函数中使用大量 switch 语句要干净得多(它几乎是某种 design by contract )。

是否还有其他更通用的编程语言本质上支持与此类似的状态声明(忽略可视化编程语言或 Workflow Foundation 等工具)?

编辑:

UnrealScript 中状态的一些美妙之处在于您可以覆盖子类中的有状态函数,甚至可以定义新的命名状态。我认为这对于实现不同状态的枚举开关(枚举无法扩展)、委托(delegate)或协同类很麻烦,尤其是在仅支持单继承的 C# 或 Java 等语言中。

最佳答案

任何面向对象的编程语言都可以让您轻松创建状态机。但是你可能想看看 QT 是 http://labs.trolltech.com/blogs/2009/01/30/qt-state-machine-framework/ .我还没有尝试过。

我更喜欢让我能够创建各种我选择的支持结构的语言,而不是为我提供针对所有不同类型特殊情况的特殊功能的语言。 QT 中所示的 C++ 就是一个很好的例子。

关于programming-languages - 哪些编程语言支持语言级别的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/950496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com