我使用mix创建了一个新项目,我尝试了别名,这是我的简单代码:
defmodule MyModule do
alias IO.puts
def hello do
IO.puts(:world)
end
end
但它又向我回复了这个错误:
invalid argument for alias, expected a compile time atom or alias, got: IO.puts()
我也尝试过:
alias IO.puts, as: puts
alias IO.puts, as: puts()
alias IO.puts(), as: puts
我如何解决此错误及其发生的原因,因为我正在遵循别名的文档!
答案 0 :(得分:2)
如文档中所述,Alias
允许您为任何给定的模块名称设置别名。
alias
的目的是别名模块名称。你要找的是 import
,它允许你使用没有完整模块名称的函数名称。
如果我理解您要正确执行的操作,则可以使用import IO
,或者更具体地说,import IO, only: [puts: 2]
。
答案 1 :(得分:0)
您不需要alias
任何内容。刚
defmodule MyModule do
def hello do
IO.puts(:world)
end
end
顺便说一句,alias
期望一个模块作为第一个参数,而不是一个函数。