在erlang中,我经常编写这样的代码:
case A of
A1 ->
something_simple_1;
A2 ->
case B of
B1 ->
something_simple_2;
B2 ->
case C of
C1 ->
something_simple_3;
C2 ->
...
end
end
end
很丑,怎么能避免这种情况?
答案 0 :(得分:5)
case {A, B, C} of
{A1, _, _} ->
something_simple_1;
{A2, B1, _} ->
something_simple_2;
{A2, B2, C1} ->
something_simple_3;
{A2, B2, C2} ->
...
end
请注意,这不允许您例如避免在不需要时计算C
;更普遍适用的方法就是提取功能。