簡體   English   中英

elixir函數簽名中的“<>”運算符是什么?

[英]What is the “<>” operator in an elixir function signature?

我有時看到這個函數簽名,但在其上找不到任何東西:

def handle("user:" <> id), do: Repo.get(User, id)

我是erlang / elixir的新手,所以我認為這是user:1一種模式匹配user:1user: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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM