我是Elixir的新手。 我正在尝试从文件中获取文本以变成图形。
文件格式如下:
1 2
1 3
2 3
每个数字都是已连接节点的ID。
如何将String.split / 1函数中的2个值带到程序中的其他位置?这是我到目前为止所做的:
File.stream!("../text_file")
|> Stream.map( &(String.replace(&1, "\n", "")))
|> Enum.each(String.split/1)
它只会输出:ok atom,但如果我将String.split / 1替换为IO.puts / 1
,它将打印内容答案 0 :(得分:1)
Enum.each/2
适用于您不关心返回值的函数(通常只有副作用的函数,如IO.puts
)。如果要收集返回的数据,则需要Enum.map/2
。此外,如果要删除尾随空格,则应使用String.trim_trailing/1
)
File.stream!("a")
|> Stream.map(&String.trim_trailing/1)
|> Enum.map(&String.split/1)
|> IO.inspect
输出:
[["1", "2"], ["1", "3"], ["2", "3"]]