2014-10-26 75 views
2

我需要切片[]*bytes.Buffer
buffer_slice := ... (type []*bytes.Buffer)
的創建多讀取當我寫io.MultiReader(buffer_slice)Golang創建bytes.Buffer陣列的多讀取

我得到的錯誤:
cannot use buffer_slice (type []*bytes.Buffer) as type io.Reader in argument to io.MultiReader: []*bytes.Buffer does not implement io.Reader (missing Read method).

但函數簽名MultiReader(readers ...Reader) Reader

我明白髮射陣列是毫無意義的,實際的問題是:除了th瑣碎的週期,沒有更多的選擇?

P.S.對不起,我的英語不好。

+2

見https://golang.org/doc/faq#convert_slice_of_interface。類型是不同的,但原因是一樣的。 – 2014-10-26 23:52:24

回答

3

你片的類型應該爲[]io.Reader

b1 := &bytes.Buffer{} 
b2 := &bytes.Buffer{} 
buffers := []io.Reader{b1, b2} 

multi := io.MultiReader(buffers...) 
+0

感謝您的建議,現在一切都很好! – 2014-10-27 12:00:07

+0

@KonstantinSmirnov我很高興我能幫到你 – jmaloney 2014-10-27 15:22:03