LoginSignup
6
3

More than 5 years have passed since last update.

Golangで表をタブ区切りで表示する

Posted at

CLIツールで表を出力するとき、下記のパッケージを使うとかっこ良く表示できる。

出力例(olekukonko/tablewriterから引用):

+------+-----------------------+--------+
| NAME |         SIGN          | RATING |
+------+-----------------------+--------+
|  A   |       The Good        |    500 |
|  B   | The Very very Bad Man |    288 |
|  C   |       The Ugly        |    120 |
|  D   |      The Gopher       |    800 |
+------+-----------------------+--------+

これはこれで綺麗だが、出力された表を流用・加工する場合はスペースだったりタブのみで区切られていた方が使い勝手が良かったりする。
単純なタブ区切りなら、text/tabwriterパッケージで出力可能。

package main

import (
    "fmt"
    "os"
    "text/tabwriter"
)

func main() {
    w := new(tabwriter.Writer)

    w.Init(os.Stdout, 0, 8, 0, '\t', 0)
    fmt.Fprintln(w, "a\tb\tc\td\t.")
    fmt.Fprintln(w, "123\t12345\t1234567\t123456789\t.")
    fmt.Fprintln(w)
    w.Flush()
}

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3