2016-07-21 4 views
3

는 가끔이 기능의 서명을보고 거기에 아무것도 찾을 수 없습니다엘릭시 기능 시그니처의 "<>"연산자는 무엇입니까?

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

내가 얼랑/불로 불사의 영약 새로운 오전 그래서 난이 user:1user:2을위한 패턴 매칭의 어떤 종류의 가정,하지만 난 피난처 ' 엘릭서 가이드에서 특별히 이것에 관한 기사 나 정보를 보지 못했습니다.

정확히 여기서 무슨 일이 일어나고 있습니까?

답변

12

예,이 경우 패턴입니다. "user:" <> iduser:으로 시작하는 임의의 2 진수와 일치하고 user: 다음에 오는 문자열 부분을 id에 할당합니다.

iex(1)> id = "123" 
"123" 
iex(2)> "user:" <> id 
"user:123" 
: 식으로 사용할 때와 동일한 조작도 바이너리을 연결하는 데 사용되도록

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" 

참고

관련 문제