Erlang中的匹配模式总结

 更新时间:2015年01月04日 11:47:01   投稿:junjie  
这篇文章主要介绍了Erlang中的匹配模式总结,本文讲解了赋值时匹配、流程控制中的匹配、消息传递匹配等内容,需要的朋友可以参考下

一、赋值时匹配

原子匹配

复制代码 代码如下:

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.

Title.                                % "Erlang 中的模式匹配总结"
Slug.                                 % "summary-of-pattern-match-in-erlang"


比特匹配