我有时会看到此函数签名,但找不到任何东西:
def handle("user:" <> id), do: Repo.get(User, id)
我是新来的Erlang /灵药,所以我认为这是某种形式的模式匹配user:1
和user:2
,但我还没有看到关于这个特别的药剂导向的任何物品或信息。
这到底是怎么回事?
是的,在这种情况下是一种模式。"user:" <> id
将匹配任何以开头的二进制文件user:
,并将字符串后的部分分配user:
给id
。
iex(1)> "user:" <> id = "user:"
"user:"
iex(2)> id
""
iex(3)> "user:" <> id = "user:123"
"user:123"
iex(4)> id
"123"
iex(5)> "user:" <> id = "user"
** (MatchError) no match of right hand side value: "user"
请注意,当用作表达式时,同一运算符也可用于连接二进制文件:
iex(1)> id = "123"
"123"
iex(2)> "user:" <> id
"user:123"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句