字符列表

Elixir 中的字符串是二进制文件。但是,在 Erlang 代码中,字符串传统上是“char 列表”,因此在调用 Erlang 函数时,可能必须使用 char 列表而不是常规的 Elixir 字符串。

虽然常规字符串是使用双引号 " 编写的,但 char 列表是使用单引号'编写的:

string = "Hello!"
char_list = 'Hello!'

字符列表只是表示每个字符的代码点的整数列表。

'hello' = [104, 101, 108, 108, 111]

可以使用 to_charlist/1 将字符串转换为字符列表 :

iex> to_charlist("hello")
'hello'

而反过来可以用 to_string/1 完成 :

iex> to_string('hello')
"hello"

调用 Erlang 函数并将输出转换为常规 Elixir 字符串:

iex> :os.getenv |> hd |> to_string
"PATH=/usr/local/bin:/usr/bin:/bin"