0
我試圖在case中使用「_」,但我錯過了一些東西。 我在做什麼是:Erlang:變量'_'是未綁定的
case (Packet =:= #xmlel{name = <<"message">>, attrs = [_, {<<"type">>,<<"chat">>}], children = _}) of
true ->
?INFO_MSG("True ###### Packet ~p", [Packet]);
_ ->
?INFO_MSG("False ###### Packet ~p", [Packet])
end,
和錯誤是:變量「_」是自由的。
我希望這個變量「_」表示在這個函數中的每一件事情。
像 - >
attrs = [Whatever, {<<"type">>,<<"chat">>}]
children = Whatever
我該怎麼辦呢?日Thnx。
好了,有什麼事的意思是 「不管」 我可以用它? 像:包= {xmlel,<<"message">> [{<<"to">>,<< 「[email protected]」 >>},{<<"type">>,<<"chat">>}],[]} 我想要的東西的意思是一切Erlang Like Packet == #xmlel {name = <<"message">>,attrs = [WhatEever,{<<"type">>,<<"chat">>}] children = WhatEever}) –
我不完全明白這一點。 '_'表示匹配一切。 _ = 1和_ = 2將始終通過。然而a = 1和a = 2會崩潰。 – Xin
我想我明白你的意思。基本上,這不是正確的方法,Erlang不支持你。 Pattern = Expression會檢查並匹配你,你不能在=的右邊放置未知的東西。這不是Erlang的設計 – Xin