pattern matching - What is the "<>" operator in an elixir function signature? -


i see function signature , can't find on it:

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

i new erlang/elixir assume sort of pattern matching user:1 , user:2, haven't seen articles or information in elixir guides.

what going on here?

yes, it's pattern in case. "user:" <> id match binary starting user:, , assign part of string after 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" 

note same operator used concatenate binaries when used expression:

iex(1)> id = "123" "123" iex(2)> "user:" <> id "user:123" 

Comments