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

Import 为什么Elixir警告我的导入未使用?,import,compiler-warnings,elixir,Import,Compiler Warnings,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" => "

我是长生不老药的新手,遇到了这个问题。这对我来说毫无意义,所以我可能错过了什么

为什么长生不老药给我这个警告:

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

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


因此,由于您将这些函数与
Poison
前缀一起使用,因此
import
将保持未使用状态,并且您将收到编译器警告。

要放大Kerneel的答案,请按以下方式修改您的代码:

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

警告就会消失。(注意:我移动了导入,因为它稍微更惯用一些,但在代码中也有它也没关系)

简单地说,您可以将
import
更改为
require
,警告就会消失。