Предупреждение о диализаторе в Эрланге

Я использую диализатор для исправления предупреждений в коде Erlang,

io: format (IoDevice, "[]");

эта строка выдает следующую ошибку

Вызов io:format(IoDevice::pid(),[91 | 93,...]) никогда не вернется, так как при успешном наборе будет (atom() | binary() | string(),[any()]) -> "ОК" и контракт (Формат, Данные) -> "ОК", когда Формат:: формат (), Данные:: [term()]

Я не могу понять, в чем проблема, может кто-нибудь объяснить это?

Спасибо

1 ответ

Решение

Я рекомендую прочитать страницу руководства io. Его использование просто:

1> io:format("hello ~p~n", [world]). % ~n means newline
hello world
ok
2> io:format("hello ~p~n", [<<"world">>]).             
hello <<"world">>
ok
3> io:format("hello ~s~n", [<<"world">>]).
hello world
ok

В вышеупомянутом диализаторе сказали, что io:format/2 (format/2 означает функцию format который принимает 2 аргумента) принимает atom() или же string() или же binary() в качестве 1-го аргумента и список с нулем или более элементов в качестве 2-го аргумента. Согласно вашему коду, диализатор обнаруживает, что IoDevice Эрланг pid() не string() или же binary(),

Другие вопросы по тегам