2015-08-30 4 views

Antwort

20

Ja und nein. Die erste Definition definiert automatisch einen Aliasnamen auf dem Modulnamen basiert:

defmodule Utilities do 
    defmodule StringUtils do 
    end 

    # Can access the module as StringUtils 
end 

während der zweite:

defmodule Utilities.StringUtils do 
    # Cannot access the module as StringUtils 
end 

Andere als die, der Code und das Modul durch beide definiert sind genau die gleichen.

3

Ja, beide sind genau auf das Symbol übersetzt (in Erlang wird ein Modul mit seinem Symbol bezeichnet):

:"Elixir.Utilities.StringUtils"

In Erlang gibt es nicht wirklich verschachtelte Module, es ist nur etwas Elixir simuliert.

+3

Danke für die Antwort - ich glaube, du meintest 'Atom', wenn du auf' Symbol 'stehst –

Verwandte Themen