[英]What is the “<>” operator in an elixir function signature?
我有時看到這個函數簽名,但在其上找不到任何東西:
def handle("user:" <> id), do: Repo.get(User, id)
我是erlang / elixir的新手,所以我認為這是user:1
一種模式匹配user:1
和user:2
,但我沒有在Elixir指南中看到任何關於此的文章或信息。
到底發生了什么?
是的,在這種情況下,這是一種模式。 "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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.