我希望能够编写一个函数,当它的输入处于某种无效状态时(假设它是一个整数,无效意味着-1),它接收带有任何信息的消息,但是当它的输入有效时,它只接收与其输入相同类型的消息。例如,这可能是一个可能的解决方案:
f(-1) ->
receive
...
{a, AnyInput} ->
% Do something
...
end
f(ValidInput) ->
receive
...
{a, ValidInput} ->
% Do something
...
end
这里主要关注的是重复代码,因为接收包含大量的,否则相同的代码(同一个接收中还有许多其他消息类型)。
有没有可以帮助我的编码模式?
我也可以自由地将无效状态设置为任何值,包括undef,如果这样做有帮助的话。
答案 0 :(得分:2)
{{1}}