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