2014-07-22 31 views
6

Eliksilerde atomlar : ile başlamalıdır, bu yüzden büyük harfle başlayan tüm hazır sözcükler bile neden atom olarak değerlendirilir? Eğer here görebileceğiniz gibiElixir - büyük harfle başlamıyor atom

IO.puts is_atom(Foo) # true, why???? 
IO.puts is_atom(foo) # error undefined function 
IO.puts is_atom(:foo) # true 

cevap

11

, büyük harf ile başlayan tanımlayıcılar atom takma adları olarak kabul edilir. Sizin durumunuzda, Foo, bir atom olan :'Elixir.Foo' takma addır.

+0

iyi açıkla ... –

+3

FYI: modül adları Erlang VM'deki atomlardır. Yani örn. Modülden uyku/1 işlevini çağırabilirsiniz: zamanlayıcı Bu şekilde Elixir:: timer.sleep (1000). Elixir modülleri büyük harfle başlayan atomlardır ve "Elixir" ön eki otomatik olarak eklenir. Yani Erlang'dan, ör. 'Elixir.Supervisor': start_link (...) ve Elixir: Supervisor.start_link (...) –