2015-12-12 3 views
1

Я новичок в Elixir и столкнулся с этим. Для меня это не имеет никакого смысла, поэтому я, вероятно, что-то пропустил.Почему Эликсир предупреждает меня, что мой импорт не используется?

Почему Elixir дает мне это предупреждение:

Библиотека/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 

ответ

5

import используется для явным образом скажу, что вы собираетесь использовать импортированные функции модуля, без предварительного указания имени модуля.

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

Таким образом, так как вы используете эти функции с префиксом Poison, то import остается неиспользованным, и вы получите предупреждение компилятора.

+0

Проще говоря, вы можете изменить 'import' на' require', и предупреждение исчезнет. – elkelk

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 

И предупреждение исчезнет. (NB: я переместил импорт, потому что это немного более идиоматично, но это нормально, когда вы тоже получили его в своем коде).

Смежные вопросы