2017-10-11 88 views
0

我書面方式東西tabwriter.Writer對象從tabwriter.Writer返回,如何檢查響應在golang

w := tabwriter.NewWriter(os.Stdout, 5, 1, 3, ' ', 0) 
    fmt.Fprintf(w, "%v\t%v\t\n", somevalue1, somevalue2) 

我可以使用w.Flush() 控制檯打印在W中的數據是否有任何方式,以便獲得值以W爲串在一個地方,它有一定的價值比較?

我要比較我在W的一些數據。

回答

0

您可以實現自己的io.Writer

type W []byte 

func (w *W) Write(b []byte) (int, error) { 
    *w = append(*w, b...) 
    return len(b), nil 
} 

可以再通*Wtabwriter.NewWriter一個實例:

sw := &W{} 
w := tabwriter.NewWriter(sw, 5, 1, 3, ' ', 0) 
fmt.Fprintf(w, "%v\t%v\t\n", somevalue1, somevalue2) 

// get the string value from sw 
str := string(*sw) 

由於sugested通過@Tim,你應該使用*bytes.Buffer而不是有更好的表現而且它已經實現了io.Writer

var b bytes.Buffer 
w := tabwriter.NewWriter(&b, 0, 0, 1, '.', 0) 
// ... 
fmt.Println(b.String()) 
+2

我只想用'bytes.Buffer',而不是實施這種方法大家推薦自己。 –