Elixir cond控制结构是否允许匹配多个案例?
是否有类似于Elixir cond语句的故障排除功能,允许我匹配多种情况?我想这样做是为了避免重复同一行代码。我还希望避免在if块中使用长链逻辑或| |析取语句。现在,我重复这样的代码:Elixir cond控制结构是否允许匹配多个案例?,elixir,Elixir,是否有类似于Elixir cond语句的故障排除功能,允许我匹配多种情况?我想这样做是为了避免重复同一行代码。我还希望避免在if块中使用长链逻辑或| |析取语句。现在,我重复这样的代码: cond do top == nil -> eval(rest, [operator | output_queue], opstack) top == "(" -> eval(rest, [operator | output_queue], opstack) compare_to(ope
cond do
top == nil -> eval(rest, [operator | output_queue], opstack)
top == "(" -> eval(rest, [operator | output_queue], opstack)
compare_to(operator, top) < 0 -> # keep popping
_-> # some catchall
end
我还希望避免在if块中使用长链逻辑或| |析取语句
与case不同,您不需要切换到if来使用| |-cond,它接受任何表达式,您可以将top==nil和top==与| |连接起来以获得所需的:
cond do
top == nil || top == "(" -> eval(rest, [operator | output_queue], opstack)
compare_to(operator, top) < 0 -> # keep popping
_-> # some catchall
end
哈谢谢这是一个漫长的夜晚