text/tabwriter

Guided tour · Formatting & Strings · pkg.go.dev →

Aligned columns in plain text. Feed it tab-separated lines; it pads so columns line up.

Writer — stream tab-separated into aligned columns

Basic usage — always call Flush

w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0)
fmt.Fprintln(w, "NAME\tAGE\tROLE")
fmt.Fprintln(w, "Ada\t36\tengineer")
fmt.Fprintln(w, "Grace\t85\tadmiral")
w.Flush()
Output
NAME   AGE  ROLE
Ada    36   engineer
Grace  85   admiral

Flags — right-align, debug separators

// minwidth=0, tabwidth=8, padding=1, padchar='.', flags=tabwriter.AlignRight
w := tabwriter.NewWriter(os.Stdout, 0, 8, 1, '.', tabwriter.AlignRight)