如何将IO传递给传递给另一个函数的elixir函数

时间:2015-11-25 14:52:29

标签: elixir

我想在某个目录中运行一个函数,所以我有这个代码:

  def main(args) do
    args |> directory |> File.cd!(&Cli.run/0) |> IO.puts
  end

  def directory([]) do
    "."
  end

  def directory(args) do
    hd(args)
  end

我现在想将IO传递给Cli.run,以便我可以测试它 - 目前IO直接在Cli.run中使用。

我如何传递它?

1 个答案:

答案 0 :(得分:1)

感谢manukall,解决方法是将匿名函数传递给File.cd!,如下所示:

File.cd!(fn -> Openreevoo.Cli.run(IO) end)