| // 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| | |
| } |