为什么Elixir警告我我的导入未被使用?

时间:2015-12-12 11:05:11

标签: import compiler-warnings elixir

我是Elixir的新手,遇到了这个。这对我没有任何意义,所以我可能会遗漏一些东西。

为什么Elixir会给我这个警告:

  

lib / test.ex:3:警告:未使用的导入

关于该代码

defmodule Test do
  def run(str) do
    import Poison
    obj = Poison.Parser.parse!(str)
    obj = %{obj | "name" => "bert"}
    obj = %{obj | "alter" =>  "30"}
    Poison.encode!(obj)
  end
end

2 个答案:

答案 0 :(得分:6)

import用于明确表示您将使用导入的模块函数,而不使用模块名称作为前缀。

http://elixir-lang.org/getting-started/alias-require-and-import.html#import

因此,由于您使用带有Poison前缀的这些函数,import仍然未使用,并且您收到编译器警告。

答案 1 :(得分:1)

要放大Kernael的答案,请以这种方式修改您的代码:

defmodule Test do
  import Poison
  def run(str) do
    obj = Parser.parse!(str)
    obj = %{obj | "name" => "bert"}
    obj = %{obj | "alter" =>  "30"}
    encode!(obj)
  end
end

警告将消失。 (注意:我移动了导入,因为它稍微更惯用,但是你的代码中也很好用。)