Clojure

Clojure with-in-str と with-out-str の使い方

More than 3 years have passed since last update.

Ruby でいう StringIO みたいなもの。標準入力 *in* と標準出力 *out* をスタブしてくれる感じの便利関数。

どちらも標準入出力を扱う処理のテストに便利そう。あと暗黙に標準出力に書く関数を with-out-str でラップして出力をインターセプトし文字列として何か他のことに利用する、などのテクニックも使いたくなることがありそう。

ドキュメント

コードスニペット

(ns clj-with-in-str.core)

(read-line)

(with-in-str "Hello world"
(read-line))

(with-in-str "Hello world"
(slurp *in*))

(ns clj-with-out-str.core)

(println "Hello world")

(with-out-str
(println "Hello world"))