2016-12-07 2 views
9

엘 릭셔의 변수 할당에 대한 질문이 있습니다. 얼랑,이는 no match of right hand side value 올릴 것 :엘 릭실의 변수 할당

X = 4. 
X = 2. 

그러나, 한 번 이상 변수 이상으로 값을 지정 비약에 완벽하게 잘 보인다. 나는 패턴 매칭이 엘릭서에서 어떻게 작용하는지 혼란 스럽다. Elixir는 패턴 매칭과 변수 할당을 어떻게 구별합니까? 내가 이해하는 바에 따르면, Erlang에서 X은 언 바운드 변수이므로 아무것도 일치시킬 수 있습니까? 그러나 일단 바운드되면 패턴 일치는 X과 동일한 값인 경우에만 작동합니다. 그래서 Elixir은 Erlang과 같은 언 바운드 변수의 개념을 공유하지 않습니까?

답변

12

예, Elixir은 Erlang과 동일한 개념을 따르지 않습니다. Elixir는 함수형 프로그래밍에 익숙하지 않은 개발자, 특히 Ruby 개발자에게 더 쉽게 접근 할 수 있도록 노력합니다. Pattern matching 문서에 따르면, 당신은 변수 핀이 있습니다

iex(1)> x=4 
4 
iex(2)> ^x=2 
** (MatchError) no match of right hand side value: 2 

또한, 변수는 엘릭서에서 소문자로 시작해야 있습니다.

+3

http://blog.plataformatec.com.br/2016/01/comparing-elixir-and-erlang-variables/ 문서는이 문제의 추론에 대한 훌륭한 설명입니다. – michalmuskala