2016-12-07 23 views
9

Elixir'de değişken ataması hakkında bir sorum var. Erlang, bu bir no match of right hand side value gündeme getireceğini:Elixir'de değişken ataması

X = 4. 
X = 2. 

Ancak, bir kez daha değişken daha bir değer atamak için Elixir tamamen normal görünüyor. Elixir'de desen eşleştirmesinin nasıl çalıştığını karıştırıyorum. Elixir, desen eşleştirmesi ve değişken atama arasında nasıl bir ayrım yapar? Anladığım kadarıyla, Erlang'da, X bir bağlanmamış değişkendir, bu yüzden herhangi bir şeyle eşleştirilebilir, doğru mu? Ancak, bir kez bağlandığında, desen eşleşmesi yalnızca X ile aynı değerde çalışır. Yani Elixir, aynı bağlanmamış değişkenler kavramını Erlang olarak paylaşmıyor mu?

cevap

12

Evet, Elixir bu konuda Erlang ile aynı konsepti takip etmiyor. Elixir, özellikle Ruby geliştiricileri olmak üzere, fonksiyonel programlamaya daha az aşina olan geliştiriciler için daha erişilebilir olmaya çalışır. Pattern matching belgelerine göre değişken pin zorunda:

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

Ayrıca değişkenler Elixir bir küçük harf ile başlamak zorunda olduğuna dikkat edin.

+3

http://blog.plataformatec.com.br/2016/01/comparing-elixir-and-erlang-variables/ article, bu davranışın ardındaki gerekçenin büyük bir açıklamasıdır. – michalmuskala

İlgili konular