Предупреждение о диализаторе в Эрланге
Я использую диализатор для исправления предупреждений в коде 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()
,