Elixir:列表输出中的^ A.

时间:2018-04-21 09:39:53

标签: elixir

我尝试了各种方法来生成如下列表:

 n = 3
 nodelist_master = Enum.into 1..n, []

但是当我尝试用IO.puts" List:#{nodelist_master}"输出它们时或检查我得到

 ^A^B^C

我在期待

 [1,2,3]

1 个答案:

答案 0 :(得分:3)

您使用的字符串插值("#{list}")在参数上隐式调用Kernel.to_string/1

iex|1 ▶ list = Enum.into 1..3, []
#⇒ [1, 2, 3]
iex|2 ▶ to_string(list)        
#⇒ <<1, 2, 3>>

整数列表输出为值字符的ASCII字符&lt; 127:

iex|3 ▶ IO.puts to_string(list)
#⇒ ^A^B^C
:ok

以上是123的ASCII代码。对于65"A" char的ASCII代码):

iex|3 ▶ IO.puts [65]
#⇒ A

IO.inspect隐式调用Kernel.inspect/2参数:

iex|4 ▶ inspect(list)
#⇒ "[1, 2, 3]"
iex|5 ▶ IO.inspect list, label: "List"
#⇒ List: [1, 2, 3]
[1, 2, 3]