Erlang中的匹配模式总结

2019-11-06 09:26:23丽君

一、赋值时匹配

原子匹配

atom    = atom                        % atom
another = another                     % another
atom    = another                     % exception error

变量匹配

Var = 2.                              % 2
Var = 3 - 1.                          % 2
Var = 1.                              % exception error

元组匹配

Attr = {name, sloger}.                % {name, sloger}
{name, Name} = Attr.                  % {name, sloger}
Name.                                 % sloger

列表匹配

Langs = [perl, python, ruby, erlang].
[Head | Tail] = Langs.
Head.                                 % perl
Tail.                                 % [python, ruby, erlang]

参数匹配

sum([]) -> 0;
sum([H|T]) -> H + sum(T).

sum([1, 2, 3]).                       % 6

记录匹配

%% record(post, {title, slug, body, author}).

Post = #post{title = "Pattern Match in Erlang",
             slug = "pattern-match-in-erlang",
             body = "Bla bla bla...",
             author = sloger}.

#post{title = Title, slug = Slug} = Post.