只需使用list_to_atom()
给出:二郎字符串原子和格式化字符串
list_to_atom("hello").
hello
list_to_atom("Hello").
'Hello'
为什么不同?
我想如下格式与数字,字符串和原子的字符串:
lists:flatten(io_lib:format("PUTVALUE ~p ~p", [list_to_atom("hello"), 40])).
"PUTVALUE hello 40"
lists:flatten(io_lib:format("PUTVALUE ~p ~p", [list_to_atom("Hello"), 40])).
"PUTVALUE 'Hello' 40"
什么是二郎神这样做的最佳方式?
编辑:为了使问题清晰,有比上述和在一些情况下,值可以是一个字符串或一原子的例子更多的值,像
lists:flatten(io_lib:format("PUTVALUE ~p ~p ~p", [list_to_atom("hello"), X, 40])).
其中第一个参数总是字符串,但X
可以是原子或字符串。第三个参数始终是一个数字。
+1非常真实。这可以避免创建原子 – 2012-02-17 04:53:08
感谢您的有用答案。如果其中一个参数可以是字符串或原子呢? – mbsheikh 2012-02-17 04:58:18
原子被'〜s'或'〜p'格式化。按'〜s',结果不会被单引号字符引用。请参阅http://www.erlang.org/doc/man/io.html#format-1以获取完整参考。 – shino 2012-02-17 06:51:09