首页 > 解决方案 > 如何在 Elixir 中删除列表周围的引号

问题描述

Elixir 中的一项操作正在返回我

"[some_data1, some_data2]"

我想删除列表周围的引号,即我希望我的最终结果看起来像这样

[some_data1, some_data2]

标签: elixir

解决方案


这是一种方法:

数据.txt:

[{:a, 2}, "hello", %{b: 2, c: 3}]

例如:

defmodule A do
  def get_term(fname) do
    {term, _binding} = Code.eval_file(fname, ".")
    term
  end
end

在 iex 中:

iex(7)> c "a.ex"              
warning: redefining module A (current version defined in memory)
  a.ex:1
[A]

iex(8)> A.get_term "data.txt"
[{:a, 2}, "hello", %{b: 2, c: 3}]

Code.eval_file/2 -- 评估文件内容...它返回文件中最后一个表达式的结果。

binding返回的作品Code.eval_file/2如下:

数据.txt:

a = 3
b = 4
"#{a} + #{b} = #{a+b}"

例如:

defmodule A do
  def get_term(fname) do
    {term, binding} = Code.eval_file(fname, ".")
    IO.inspect binding
    IO.puts binding[:a]
    term
  end
end

在 iex 中:

iex(22)> c "a.ex"             
warning: redefining module A (current version defined in memory)
  a.ex:1

[A]

iex(23)> A.get_term "data.txt"
[a: 3, b: 4]
3
"3 + 4 = 7"

推荐阅读