以下代码是否相同?至于调用模块方法,在两种情况下都会使用Utilities.StringUtils.some_method(...)
嵌套模块
defmodule Utilities do
defmodule StringUtils do
end
end
Run Code Online (Sandbox Code Playgroud)
名称中带点的模块
defmodule Utilities.StringUtils do
end
Run Code Online (Sandbox Code Playgroud)
Jos*_*lim 22
是的,不是.第一个定义根据模块名称自动定义别名:
defmodule Utilities do
defmodule StringUtils do
end
# Can access the module as StringUtils
end
Run Code Online (Sandbox Code Playgroud)
而第二个:
defmodule Utilities.StringUtils do
# Cannot access the module as StringUtils
end
Run Code Online (Sandbox Code Playgroud)
除此之外,两者定义的代码和模块完全相同.