一、赋值时匹配
原子匹配
复制代码 代码如下:
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"
比特匹配
复制代码 代码如下:
Red = 5.
Green = 23.
Blue = 200.
Color = <<Red:5, Green:6, Blue:5.
<<R1:5, G1:6, B1:5 = Color.
R1. % 5
G1. % 23
B1. % 200
二、流程控制中的匹配
if
复制代码 代码如下:
if
Pattern1 [when Guard1] -> Expression1;
Pattern2 [when Guard2] -> Expression2;
%% and so on ...
_ -> Expression3 % 匹配所有其它结果
end.
case
复制代码 代码如下:
case Expression of
Pattern1 [when Guard1] -> Expression1;
Pattern2 [when Guard2] -> Expression2;
%% and so on ...
_ -> Expression3
end.
try catch
复制代码 代码如下:
try FunctionOrExpressions of
Pattern1 [when Guard1] -> Expression1;
Pattern2 [when Guard2] -> Expression2
%% and so on ...
catch
ExType:ExPattern1 [when ExGuard1] ->
ExExpression1;
ExType:ExPattern2 [when ExGuard2] ->
ExExpression2;
%% and so on ...
_:_ -> DefaultExExpression % _:_ 匹配所有异常
after
AfterExpressions
end
消息传递匹配
复制代码 代码如下:
loop() ->
receive
{From, {rectangle, Width, Height}} ->
From ! {self(), Width * Height},
loop();
{From, {circle, R}} ->
From ! {self(), 3.14 * R * R},
loop();
{From, _Other} ->
From ! {self(), {error, unknown_shape}}
loop()
end.
Pid = spawn(fun loop/0).
Pid ! {self(), {rectangle, 10, 5}}. % {Pid, 50}
Pid ! {self(), {circle, 4}}. % {Pid, 50.24}
Pid ! {self(), {square, 10}}. % {Pid, {error, unknown_shape}}
Erlang,匹配模式
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
- 证声音乐图书馆《童谣世界·唱游调色盘 Kids Palette》[320K/MP3][19.53MB]
- 景黛音.1982-此夜心情·少女情怀(LP版)【永恒】【WAV分轨】
- 李浩宇.2020-清醒梦(EP)【太合红星】【FLAC分轨】
- 群星.1996-强调精选集16巨星·16金曲【EMI百代】【WAV+CUE】
- 星之翼手游公测福利领取方法大全 星之翼首发福利汇总
- CHYNA.1992-答案【友善的狗】【WAV+CUE】
- 群星.1996-宝丽金皇后驾到3辑【宝丽金】3CD【WAV+CUE】
- 群星.2023-长相思电视剧原声专辑【冬曦音乐】【FLAC分轨】
- 卫诗.2006-HitMe【东亚】【WAV+CUE】
- 陈嘉桦.2024-BAD.HABITS【群石】【FLAC分轨】
- 薛凯琪.2005-ME【华纳】【WAV+CUE】
- 证声音乐图书馆《童谣世界·唱游调色盘 Kids Palette》[FLAC/分轨][49.08MB]
- 腾讯音乐人《乘着思念的风》[320K/MP3][32.43MB]
- 腾讯音乐人《乘着思念的风》[FLAC/分轨][82.13MB]
- 星之翼手游初始角色选什么好 星之翼新手角色推荐