是的你可以.
但是,您需要小心,因为原子不是垃圾收集的,并且您可以拥有的原子数量有限制(默认限制为1,048,576).它可能看起来很多,但如果您的应用程序运行很长时间并且您正在动态生成原子,那么您最终将达到极限.
它被普遍认为是一个坏主意动态生成它们.
但是,要回答你的问题.是.
iex(1)> str = "aaa"
"aaa"
iex(2)> String.to_atom(str)
:aaa
iex(3)> :foo
:foo
iex(4)> String.to_existing_atom("foo")
:foo
iex(5)> String.to_existing_atom("bar")
** (ArgumentError) argument error
:erlang.binary_to_existing_atom("bar", :utf8)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
301 次 |
最近记录: |