Erlang 模式不匹配,但正确,该怎么办?

标签 erlang pattern-matching

我在 erlang 中的模式匹配方面遇到了一个疯狂的问题:

我的接收 block :

...
receive
    {set_val,Val} -> 
        log("got: ~p",[Val]);

    Any ->
        log("~p is an unknown command",[Any])
end.

我发送的内容:

...
{myreceive,myreceive@workstation} ! {set_val,100}

我的日志中显示的内容:

{set_val,100} is an unknown command

为什么第一个模式不匹配? (以及如何使其匹配:/)

最佳答案

我看到的唯一可能性是 Val 已经在您的函数中绑定(bind)到不同于 100 的值。

关于Erlang 模式不匹配,但正确,该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24293107/

相关文章:

erlang - 是 map :from_list guaranteed to preserve reverse order?

c# - C# 7 中的模式匹配应该使用泛型吗?

c++ - 如何在opencv中进行一对 multimap 像匹配?

scala - 如何在 Scala 2.13 中进行模式匹配?

erlang - 如何在交互式 Erlang session 中取消绑定(bind)变量?

erlang - 有哪些有趣的项目需要在 Erlang 中解决以用于学习目的?

erlang - 如何解释Erlang的监督树?

.net - 将标识符模式与 `as` 模式相结合

postgresql - Postgres 中的运算符 ~<~

erlang - Erlang 比较运算符到底是如何工作的?