我在Ejabberd中找到了这段代码:
maybe_post_request([$< | _ ] = Data, Host, ClientIp)
Run Code Online (Sandbox Code Playgroud)
我不明白[$< | _ ] = Data
Data的功能是什么.有人可以解释一下吗?
构造
[$< | _] = Data
Run Code Online (Sandbox Code Playgroud)
应用模式匹配Data
,期望它是一个列表变量,其第一个元素是字符<
,忽略其余的元素.在Erlang shell中尝试:
1> Data = "<foo>".
"<foo>"
2> [$<|_] = Data.
"<foo>"
Run Code Online (Sandbox Code Playgroud)
但如果Data
不匹配,我们会得到一个例外:
3> f(Data), Data = "foo".
"foo"
4> [$<|_] = Data.
** exception error: no match of right hand side value "foo"
Run Code Online (Sandbox Code Playgroud)