2016-12-07 12 views
9

Mam pytanie dotyczące zmiennej przypisania w eliksiru. W Erlang, byłoby to podnieść no match of right hand side value:Zmienne przypisanie w eliksiru

X = 4. 
X = 2. 

Jednak wydaje się perfekcyjnie w Elixir przypisać wartość do zmiennej więcej niż raz. Jestem zdezorientowany, jak dopasowywanie do wzorca działa w eliksiru. W jaki sposób Elixir rozróżnia dopasowanie wzorców i przypisanie zmiennych? Z tego co rozumiem, w Erlang, X jest zmienną niezwiązaną, więc można ją dopasować do czegokolwiek, prawda? Ale po związaniu dopasowanie wzorców działa tylko wtedy, gdy ma tę samą wartość, co X. Czy więc Elixir nie podziela tej samej koncepcji zmiennych niezwiązanych jak Erlang?

Odpowiedz

12

Tak, Elixir nie podąża tym samym pojęciem co Erlang w tym zakresie. Eliksir stara się być bardziej dostępny dla programistów mniej zaznajomionych z programowaniem funkcjonalnym, szczególnie z programistami Rubiego. Według Pattern matching dokumentacji trzeba przypiąć zmienna:

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

Należy również pamiętać, że zmienne mają zacząć małymi literami w Elixir.

+3

http://blog.plataformatec.com.br/2016/01/porównanie-elixir-and-erlang-variables/ artykuł jest doskonałym wyjaśnieniem powodów tego zachowania. – michalmuskala