球拍相当于/ dev / null?

时间:2015-12-13 01:40:22

标签: racket

如果我有一个打印到(current-output-port)的功能,是否有一种简单的方法可以在不打印到输出端口的情况下运行该功能?

以前,我使用/dev/null作为输出目标:

(with-output-to-file "/dev/null" #:exists 'append
  (lambda () (displayln "hello world")))

这很容易,但取决于平台。此外,我有时会忘记#:exists旗帜。

1 个答案:

答案 0 :(得分:6)

是的!使用open-output-nowhere中的racket/port

(parameterize ([current-output-port (open-output-nowhere)])
  (displayln "hello world"))

如果您想隐藏错误输出,请改为覆盖current-error-port