0
Я хочу, чтобы запустить функцию в определенной директории, поэтому у меня есть этот код:Как я могу передать IO в функцию эликсира, который передается в другую функцию
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.
Как передать его?
я не совсем уверен, что вы здесь делаете. если вы хотите передать что-то (IO) через cli.run, вам нужно добавить его к аргументам главного 'def main (args, io \\ IO) do ...', а затем перейти к Cli.run ' fn -> Cli.run (io) end' , если вы хотите проверить IO в тестах, есть http://elixir-lang.org/docs/stable/ex_unit/ExUnit.CaptureIO.html#capture_io/1 – manukall
Да , передав анонимную функцию 'fn -> Cli.run (io) end' в' File.cd! ', спасибо. – user2355213
Вы должны оставить правильное решение ответа, чтобы другие, которые искали этот вопрос, могли легко найти его. –