我如何匹配Erlang中的多个原子?

n_e*_*moo 6 erlang match

例如,我如何进行以下操作

A = atom_a,  
case A of  
 atom_b or atom_c ->   
      %do something here;  
 atom a ->  
      %do something else!  
end.  
Run Code Online (Sandbox Code Playgroud)

aro*_*tav 10

你可以使用警卫:

A = 'atom_a',
case A of
  B when B =:= 'atom_b'; B =:= 'atom_c' ->   
    %do something here;  
  'atom_a' ->  
    %do something else!  
end.  
Run Code Online (Sandbox Code Playgroud)


sch*_*sch 9

请尝试以下方法:

case is_special_atom(A) of
    true ->
        %do something here;
    false ->
         %do something else!
end.

is_special_atom(atom_b) -> true;
is_special_atom(atom_c) -> true;
is_special_atom(_) -> false.
Run Code Online (Sandbox Code Playgroud)