当文件包含2个模块时,警告"重新定义模块"

Jac*_*l's 4 elixir

试图弄清楚为什么下面的代码会产生警告

defmodule A do                                                                                                                                                
 def greet do
   IO.puts "Inside A"
 end
end

defmodule B do
  def greet do
    IO.puts "Inside B"
  end
end

spawn(A, :greet, [])
Run Code Online (Sandbox Code Playgroud)

产量

iex(14)> c("te.ex")
 te.ex:1: redefining module A
 te.ex:7: redefining module B
 Inside A
 [B, A]
Run Code Online (Sandbox Code Playgroud)

Jos*_*lim 15

它与spawn通话无关.:)每次编译文件时,在第一次之后,模块将被重新定义,因为先前的版本已经存在.在这种情况下没有任何错误,对于您不小心重新定义您不期望的模块的情况,会出现警告.

  • 好点子.我已经打开了一个问题,以确保我们用`warning:`作为前缀.谢谢! (5认同)