Elixir - 字符列表

字符列表只不过是字符的列表。 考虑以下程序来理解相同的内容。

IO.puts('Hello')
IO.puts(is_list('Hello'))

上面的程序生成以下结果 −

Hello
true

字符列表不包含字节,而是包含单引号之间的字符的代码点。 因此,双引号表示字符串(即二进制),而单引号表示字符列表(即列表)。 请注意,如果任何字符超出 ASCII 范围,IEx 将仅生成代码点作为输出。

字符列表主要在与 Erlang 交互时使用,特别是不接受二进制文件作为参数的旧库。 您可以使用 to_string(char_list) 和 to_char_list(string) 函数将字符列表与字符串相互转换 −

IO.puts(is_list(to_char_list("hełło")))
IO.puts(is_binary(to_string ('hełło')))

上面的程序生成以下结果 −

true
true

注意 − 函数 to_stringto_char_list 是多态的,即它们可以接受多种类型的输入,如原子、整数,并将它们分别转换为字符串和字符列表。