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