4

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

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, [])

输出

iex(14)> c("te.ex")
 te.ex:1: redefining module A
 te.ex:7: redefining module B
 Inside A
 [B, A]
4

1 回答 1

16

spawn它与调用无关。:) 每次编译文件时,在第一次之后,模块都会被重新定义,因为以前的版本已经存在。在这种情况下没有任何问题,警告是针对您不小心重新定义了您没想到的模块的情况。

于 2014-01-28T06:12:10.917 回答