2017-12-31 10 views
1

내가 믹스를 사용하여 새 프로젝트를 생성하고 내가 별칭을 시도하고,이 내 간단한 코드입니다 invalid argument for alias, expected a compile time atom or alias, got: IO.puts()비약 별칭 반환 "별칭에 대한 잘못된 인수를 가지고, 컴파일 시간 원자 또는 별칭을 예상 :"</p> <pre><code>defmodule MyModule do alias IO.puts def hello do IO.puts(:world) end end </code></pre> <p>

나는 또한 시도했다 : :

alias IO.puts, as: puts 
alias IO.puts, as: puts() 
alias IO.puts(), as: puts 

가 어떻게이 오류를 해결할 수 및 이유는 내가 일을 다음있어 주어진 무슨 일이 일어나고 있지만, 그것은 나에게이 오류를 반환하는 것 별칭에 대한 전자 문서!

+0

'alias'는 모듈 이름을 줄이는 데 도움이됩니다. –

답변

1

문서에 명시된대로 Alias을 사용하면 모듈 이름이 인 별칭을 설정할 수 있습니다. alias의 목적은 별명 지정 모듈 이름입니다. 찾고있는 것은 import이며 전체 모듈 이름없이 함수 이름을 사용할 수 있습니다.

정확히 무엇을하고 싶은지 알고 있으면 import IO 또는 더 구체적으로 import IO, only: [puts: 2]을 사용하고 싶을 것입니다.

0

너는 alias이 필요하지 않습니다. 그냥

defmodule MyModule do 
    def hello do 
    IO.puts(:world) 
    end 
end 

그런데, alias는 첫 번째 인수가 아닌 함수로 모듈을 기대하고있다.

관련 문제