Go 언어 text/tabwriter 알아보기

오늘은 Go 언어 기본 패키지에 포함되있는 text/tabwriter를 이용하여 탭이 있는 문자열을 정리해보려 합니다.

package main

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

text/tabwriter 패키지로 탭이 포함된 문자열을 정렬된 텍스트로 변환해줄 수 있습니다.

os 패키지는 라이터를 만들 때에 표준 출력으로 넣을 때 필요하며, fmt 패키지로 출력을 사용합니다.

func main() {
	w := tabwriter.NewWriter(os.Stdout, 0, 0, 0, '*', tabwriter.Debug)
	fmt.Fprintln(w, "a\tb\tc")
	fmt.Fprintln(w, "aa\tbb\tcc")
	fmt.Fprintln(w, "aaa\t\t")
	fmt.Fprintln(w, "aaaa\tbbbb\tcccc")
	w.Flush()
)

라이터를 생성하여 공백에 넣을 문자를 넣으면 기본적으로 최대 폭에 맞추어 문자들이 분리됩니다.

	w = tabwriter.NewWriter(os.Stdout, 0, 0, 5, '*', tabwriter.AlignRight|tabwriter.Debug)
	fmt.Fprintln(w, "a\tb\tc")
	fmt.Fprintln(w, "aa\tbb\tcc")
	fmt.Fprintln(w, "aaa\t\t")
	fmt.Fprintln(w, "aaaa\tbbbb\tcccc")
	w.Flush()
}

만약 padding 인자에 값을 넣게되면 최대 폭에 더해져서 공백에 문자들이 채워져서 출력됩니다.

플래그를 AlignRight라고 준다면 오른쪽 정렬이 되어서 나타납니다.

Written on November 3, 2018