2015-08-30 9 views

risposta

20

Sì e no. La prima definizione definisce automaticamente un alias basato sul nome del modulo:

defmodule Utilities do 
    defmodule StringUtils do 
    end 

    # Can access the module as StringUtils 
end 

Mentre il secondo:

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

Oltre a questo, il codice e modulo definito da entrambi sono esattamente gli stessi.

3

Sì, entrambi sono tradotti esattamente al simbolo (in Erlang un modulo fa riferimento al suo simbolo):

:"Elixir.Utilities.StringUtils"

Non ci sono moduli nidificati in Erlang, è solo una simulazione di elisir.

+3

Grazie per la risposta - Suppongo che intendessi "Atom", quando hai fatto riferimento a "Simboli". –