当我学习一门新语言的时候,我通常会用很多愚蠢的println来看看特定时间里的值是什么.它通常就足够了,因为语言通常具有等效的tostring.在使用erlang尝试相同的方法时,当尝试打印的值不是列表时,我的webapp就会"挂起".当打印的变量是元组而不是列表时,会发生这种情况.没有错误,例外,没有......只是没有回应.现在,我正在通过小心我正在写的内容而糊涂,随着我学到更多,事情变得越来越好.但我想知道,有没有办法更可靠地[盲目]将值打印到标准输出?
谢谢,
--tim
Rob*_*loi 20
在Erlang中,与其他语言一样,您可以打印变量,无论它们是列表,元组还是其他任何东西.
我的感觉是,对于打印,你做的事情(只是一个猜测):
io:format("The value is: ~p.", A).
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为你应该传递一个参数列表:
io:format("The value is: ~p.", [A]).
Run Code Online (Sandbox Code Playgroud)
A可以是任何东西.
我通常觉得使用起来很舒服:
erlang:display/1
Run Code Online (Sandbox Code Playgroud)
打印变量.
此外,跟踪函数通常是调试应用程序的更好方法,而不是使用打印输出.请参阅:
http://aloiroberto.wordpress.com/2009/02/23/tracing-erlang-functions/