コンソール出力に色付けする

Tomoumi Nishimura 51views 更新:2016年6月16日

ANSIエスケープコードを利用すると、コンソール出力に色付けすることができます。

print("\u001b[31m")
print("hogehoge")
print("\u001b[00m")

1行目のprint文によって色付けするためのコードを出力し、以後コンソールに出力される文字の色は指定された色になります。 3行目のprint文は出力の色を戻すためのものです。ここで出力しているのは赤ですが、他にも色々ないろがあります。詳細は参考ページのリンクを参照してください。

さて、色を変えた後に元の色に戻すのが面倒ですが、こういうときこそLoan Patternです。

def coloring[A](ansi: String)(body: => A) = try { print(ansi); body } finally { print("\u001b[00m") }

こんな感じにすることで、例えば以下のようなやり方でカラーリングした出力をする部分をブロックで囲うことができます。

coloring("\u001b[31m") {
  println("hogehoge")
  println("fugafuga")
}

参考

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません