<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # package tabwriter `import "text/tabwriter"` tabwriter包實現了寫入過濾器(tabwriter.Writer),可以將輸入的縮進修正為正確的對齊文本。 本包采用的Elastic Tabstops算法參見[http://nickgravgaard.com/elastictabstops/index.html](http://nickgravgaard.com/elastictabstops/index.html) ## Index * [Constants](#pkg-constants) * [type Writer](#Writer) * [func NewWriter(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) \*Writer](#NewWriter) * [func (b \*Writer) Init(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) \*Writer](#Writer.Init) * [func (b \*Writer) Write(buf []byte) (n int, err error)](#Writer.Write) * [func (b \*Writer) Flush() (err error)](#Writer.Flush) ### Examples * [Writer.Init](#example-Writer-Init) ## Constants ``` const ( // 忽略html標簽,并將字符實體(以'&'開始,以';'結束)視為單字符 FilterHTML uint = 1 << iota // 將轉義后文本兩端的轉義字符去掉 StripEscape // 強制單元格右對齊,默認是左對齊的 AlignRight // 剔除空行 DiscardEmptyColumns // 使用tab而不是空格進行縮進 TabIndent // 在格式化后在每一列兩側添加'|'并忽略空行 Debug ) ``` 這些標志用于控制格式化。 ``` const Escape = '\xff' ``` 用于包圍轉義字符,避免該字符被轉義;例如字符串"Ignore this tab: \xff\t\xff"中的'\t'不被轉義,不結束單元;格式化時Escape視為長度1的單字符。 選擇'\xff'是因為該字符不能出現在合法的utf-8序列里。 ## type [Writer](https://github.com/golang/go/blob/master/src/text/tabwriter/tabwriter.go#L77 "View Source") ``` type Writer struct { // 內含隱藏或非導出字段 } ``` Writer是一個過濾器,會在輸入的tab劃分的列進行填充,在輸出中對齊它們。 它會將輸入的序列視為utf-8編碼的文本,包含一系列被垂直制表符、水平制表符、換行符、回車符分割的單元。臨近的單元組成一列,根據需要填充空格使所有的單元有相同的寬度,高效對齊各列。它假設所有的字符都有相同的寬度,除了tab,tab寬度應該被指定。注意單元以tab截止,而不是被tab分隔,行最后的非tab文本不被視為列的單元。 Writer假設所有的unicode字符有著同樣的寬度,這一點其實在很多字體里是錯誤的。 如果設置了DiscardEmptyColumns,以垂直制表符結尾的空列會被丟棄,水平制表符截止的空列則不會被影響。 如果設置了FilterHTML,HTML標簽和實體會被放過,標簽寬度視為0,實體寬度視為1。文本段可能被轉義字符包圍,此時tabwriter不會修改該文本段,不會打斷段中的任何tab或換行。 如果設置了StripEscape,則不會計算轉義字符的寬度(輸出中也會去除轉義字符)。 進紙符'\f'被視為換行,但也會截止當前行的所有列(有效的刷新);除非在HTML標簽內或者在轉義文本段內,輸出中'\f'都被作為換行。 Writer會在內部緩存輸入以便有效的對齊,調用者必須在寫完后執行Flush方法。 ### func [NewWriter](https://github.com/golang/go/blob/master/src/text/tabwriter/tabwriter.go#L556 "View Source") ``` func NewWriter(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) *Writer ``` 創建并初始化一個tabwriter.Writer,參數用法和Init函數類似。 ### func (\*Writer) [Init](https://github.com/golang/go/blob/master/src/text/tabwriter/tabwriter.go#L172 "View Source") ``` func (b *Writer) Init(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) *Writer ``` 初始化一個Writer,第一個參數指定格式化后的輸出目標,其余的參數控制格式化: ``` minwidth 最小單元長度 tabwidth tab字符的寬度 padding 計算單元寬度時會額外加上它 padchar 用于填充的ASCII字符, 如果是'\t',則Writer會假設tabwidth作為輸出中tab的寬度,且單元必然左對齊。 flags 格式化控制 ``` Example ``` 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 (\*Writer) [Write](https://github.com/golang/go/blob/master/src/text/tabwriter/tabwriter.go#L477 "View Source") ``` func (b *Writer) Write(buf []byte) (n int, err error) ``` 將buf寫入b,實現io.Writer接口,只有在寫入底層輸出流是才可能發生并返回錯誤。 ### func (\*Writer) [Flush](https://github.com/golang/go/blob/master/src/text/tabwriter/tabwriter.go#L452 "View Source") ``` func (b *Writer) Flush() (err error) ``` 在最后一次調用Write后,必須調用Flush方法以清空緩存,并將格式化對齊后的文本寫入生成時提供的output中。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看