为什么不推荐使用elixir的NullPointerException
行为?
我想用GenFsm
行为实现有限状态机。
我认为GenFsm
不足以描述有限状态机。
因为,Agent
不适合描述从同一输入返回每个状态的不同值。
答案 0 :(得分:12)
请参阅相关提交:https://github.com/elixir-lang/elixir/commit/455eb4c4ace81ce60b347558f9419fe3c33d8bf7
基本上,您现在可以直接从OTP使用:gen_fsm
,而不使用Elixir包装器。
答案 1 :(得分:5)
:gen_fsm
也被:gen_statem
在Erlang / OTP 20.0中弃用和替换,因此请使用通用状态机。有关更多信息,请查看有关Genstatem
这是Erlang / OTP 19.0中的新行为。它已经彻底了 经过评论,足够稳定,可供至少两种重度OTP使用 应用程序,并留在这里。根据用户的反馈,我们会这样做 不要指望,但可以发现有必要让未成年人不落后 兼容的Erlang / OTP 20.0更改
答案 2 :(得分:2)
Elixir核心团队认为它过于混乱,并建议开发人员寻求其他解决方案。
3天前我在它周围写了一个Elixir包装器,并将其推到hex.pm,名称为gen_fsm。这是github页面:https://github.com/pavlos/gen_fsm如果你想查看它。