我正在使用透析器修复Erlang代码中的错误。
io:format(IoDevice, "[]");
此行产生以下错误:
The call io:format(IoDevice::pid(),[91 | 93,...])
will never return since the success typing is
(atom() | binary() | string(),[any()]) -> 'ok'
and the contract is (Format,Data) -> 'ok'
when Format :: format(), Data :: [term()]
我不明白问题出在哪里有人能解释一下吗
谢谢你
1条答案
按热度按时间tyky79it1#
我推荐阅读io manual page,它的用法很简单:
在上面的透析器中告诉你
io:format/2
(format/2
表示接受2个参数的函数format
)接受atom()
或string()
或binary()
作为第一个参数,接受包含零个或多个元素的列表作为第二个参数。根据您的代码,透析器检测到IoDevice
是Erlangpid()
,而不是string()
或binary()
。