|  | // Copyright 2012 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | package tabwriter_test | 
|  |  | 
|  | import ( | 
|  | "fmt" | 
|  | "os" | 
|  | "text/tabwriter" | 
|  | ) | 
|  |  | 
|  | func ExampleWriter_Init() { | 
|  | w := new(tabwriter.Writer) | 
|  |  | 
|  | // Format in tab-separated columns with a tab stop of 8. | 
|  | 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() | 
|  |  | 
|  | // Format right-aligned in space-separated columns of minimal width 5 | 
|  | // and at least one blank of padding (so wider column entries do not | 
|  | // touch each other). | 
|  | w.Init(os.Stdout, 5, 0, 1, ' ', tabwriter.AlignRight) | 
|  | fmt.Fprintln(w, "a\tb\tc\td\t.") | 
|  | fmt.Fprintln(w, "123\t12345\t1234567\t123456789\t.") | 
|  | fmt.Fprintln(w) | 
|  | w.Flush() | 
|  |  | 
|  | // output: | 
|  | // a	b	c	d		. | 
|  | // 123	12345	1234567	123456789	. | 
|  | // | 
|  | //     a     b       c         d. | 
|  | //   123 12345 1234567 123456789. | 
|  | } | 
|  |  | 
|  | func Example_elastic() { | 
|  | // Observe how the b's and the d's, despite appearing in the | 
|  | // second cell of each line, belong to different columns. | 
|  | w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, '.', tabwriter.AlignRight|tabwriter.Debug) | 
|  | fmt.Fprintln(w, "a\tb\tc") | 
|  | fmt.Fprintln(w, "aa\tbb\tcc") | 
|  | fmt.Fprintln(w, "aaa\t") // trailing tab | 
|  | fmt.Fprintln(w, "aaaa\tdddd\teeee") | 
|  | w.Flush() | 
|  |  | 
|  | // output: | 
|  | // ....a|..b|c | 
|  | // ...aa|.bb|cc | 
|  | // ..aaa| | 
|  | // .aaaa|.dddd|eeee | 
|  | } | 
|  |  | 
|  | func Example_trailingTab() { | 
|  | // Observe that the third line has no trailing tab, | 
|  | // so its final cell is not part of an aligned column. | 
|  | const padding = 3 | 
|  | w := tabwriter.NewWriter(os.Stdout, 0, 0, padding, '-', tabwriter.AlignRight|tabwriter.Debug) | 
|  | fmt.Fprintln(w, "a\tb\taligned\t") | 
|  | fmt.Fprintln(w, "aa\tbb\taligned\t") | 
|  | fmt.Fprintln(w, "aaa\tbbb\tunaligned") // no trailing tab | 
|  | fmt.Fprintln(w, "aaaa\tbbbb\taligned\t") | 
|  | w.Flush() | 
|  |  | 
|  | // output: | 
|  | // ------a|------b|---aligned| | 
|  | // -----aa|-----bb|---aligned| | 
|  | // ----aaa|----bbb|unaligned | 
|  | // ---aaaa|---bbbb|---aligned| | 
|  | } |