2016-07-21 9 views
3

Ich sehe diese Funktion Unterschrift manchmal und kann nichts auf ihm finden:Was ist der "<>" Operator in einer Elixier-Funktionssignatur?

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

Ich bin neu in erlang/Elixier so nehme ich an das eine Art Muster für user:1 passend ist und user:2, aber ich haven‘ Ich habe keine Artikel oder Informationen darüber speziell in den Elixir-Guides gesehen.

Was genau passiert hier?

Antwort

12

Ja, es ist ein Muster in diesem Fall. "user:" <> id passt jede Binärdatei an, die mit user: beginnt, und weist den Teil der Zeichenfolge nach user: der id zu.

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" 

Beachten Sie, dass der gleiche Betreiber auch Binärdateien verwendet, wenn als Ausdruck verwendet verketten:

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