go基础库之将文本与tabwriter对齐

在某些情况下,输出(通常是数据输出)是通过选项卡文本完成的,该文本在排列良好的单元格中格式化。这种格式可以通过text/tabwriter包来实现。该包提供了Writer过滤器,它将带有制表符的文本转换为格式正确的输出。

将文本与tabwriter对齐

Golang 版本

1.12.1

前言

在某些情况下,输出(通常是数据输出)是通过选项卡文本完成的,该文本在排列良好的单元格中格式化。这种格式可以通过text/tabwriter包来实现。该包提供了Writer过滤器,它将带有制表符的文本转换为格式正确的输出。

实现

创建文件tabwriter.go,代码如下:

package main

import (
"fmt"
"os"
"text/tabwriter"
)

func main() {

	w := tabwriter.NewWriter(os.Stdout, 15, 0, 1, ' ',
		tabwriter.AlignRight)
	fmt.Fprintln(w, "username\tfirstname\tlastname\t")
	fmt.Fprintln(w, "sohlich\tRadomir\tSohlich\t")
	fmt.Fprintln(w, "novak\tJohn\tSmith\t")
	w.Flush()

}
$ go run tabwriter.go
       username      firstname       lastname
        sohlich        Radomir        Sohlich
          novak           John          Smith

原理

NewWriter函数调用配置的参数创建Writer过滤器。 此Writer写入的所有数据都根据参数进行格式化。 os.Stdout在这里用于演示目的。

text/tabwriter包还提供了一些配置选项,例如flag参数。 最有用的是tabwriter.AlignRight,它将编写器配置为在每列中将内容对齐。