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

问题描述 投票:0回答:2

试图找出为什么下面的代码会生成警告

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]
elixir
2个回答
20
投票

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


0
投票

我通过删除 _build 文件夹解决了这个问题

© www.soinside.com 2019 - 2024. All rights reserved.