只需使用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