在Elixir中将Integer转换为Atom

evn*_*vnu 1 elixir

在Erlang中,可以编写'1'一个以整数命名的原子.Elixir使用语法:<name>来定义原子,但:1不可能:

iex(1)> :1
** (SyntaxError) iex:1: unexpected token: ":" (column 1, codepoint U+003A)
Run Code Online (Sandbox Code Playgroud)

Elixir有没有办法生成一个整数命名的原子?

Dog*_*ert 5

您可以将1引号和前置放入:以获取'1'Erlang中的等效内容:

iex(1)> :"1"
:"1"
iex(2)> :'1'
:"1"
Run Code Online (Sandbox Code Playgroud)


Pat*_*wak 5

Dogbert 提供的答案是最简单的。如果您想为此使用函数,不幸的是没有函数。您可以先将 int 转换为 Sting,然后再转换为 Atom。

1
|> Integer.to_string()
|> String.to_atom()
# :"1"
Run Code Online (Sandbox Code Playgroud)


Chr*_*lne 5

您还可以利用字符串插值:
String.to_atom("#{your_number}")