1> io:format("~p~n",["#"]). % the pretty print format will show you are printing a string
"#"
ok
2> io:format("~s~n",["#"]). % the string format is used to print strings as text
#
ok
3> io:format("~c~n",[$#]). % the character format is used to print a charater as text
#
ok
4> io:format("~p~n",[{{false,$#}}]). % note that a character is an integer in erlang.
{{false,35}}
ok
5> io:format("~p~n",[{{false,'#'}}]). % '#' is an atom, not an integer, it cannot be print as # without '
% because it doesn't start by a lower case character, and also
% because # has a special meaning in erlang syntax
{{false,'#'}}
ok
6> io:format("~p~n",[{{false,'a#'}}]).
{{false,'a#'}}
ok
7> io:format("~p~n",[{{false,'ab'}}]).
{{false,ab}}
ok
8> io:format("~p~n",[{{false,a#}}]).
* 1: syntax error before: '}'
8>
2条答案
按热度按时间ibps3vxo1#
在Erlang中,单引号用来表示一个原子,所以
'#'
变成了一个原子而不是特殊字符。您可能需要考虑使用
$#
表示#
字符或“#”表示字符串(字符串是Erlang中的字符列表)的值。在这种情况下,
{false, $#}
将导致{false, 35}
(Ascii值为$#)。如果要打印字符,则需要使用io:format。如果使用string(字符列表),则:
其中ok是io:format的返回值。
o0lyfsai2#
在你给予的例子中,你没有打印任何东西,你所显示的是shell自动输出的内容:返回最后一条语句的结果。如果你想打印给定格式的东西,你必须调用一个io函数:
注意,每次shell打印最后一条语句的结果时:io:格式/2返回ok