如何将控制台输出保存为水晶中的字符串?

时间:2017-03-10 00:30:19

标签: crystal-lang

在红宝石上,我可以做到

require "stringio"
def with_captured_stdout
  begin
    old_stdout = $stdout
    $stdout = StringIO.new('','w')
    yield
    $stdout.string
  ensure
    $stdout = old_stdout
  end
end

后来称之为

str = with_captured_stdout { Solution.main("Greetings from Javatlacati") }

但在上我可以引用全局变量$stdout而不会收到相应的错误

  

$ global_variables不受支持,请改用@@ class_variables

有没有解决方法?提前谢谢。

1 个答案:

答案 0 :(得分:2)

目前在水晶标准库中没有简单的方法可以捕获stdout或stderr,但是这里的分片是https://github.com/mosop/stdio