我是新手(来自C++世界)
我创建了一个新的编写器,它"继承"了io.writer:
type httpWriter struct {
io.Writer
}
接下来,我实现了io的Write()函数。编写器界面:
func (w *httpWriter) Write(p []byte) (n int, err, error){...}
然后,我已将所有输出重定向到该编写器。
我有 truble 在 Write() 实现中打印实际字符串。我已经尝试了我在文档中可以找到的所有字符串格式,但没有一个给我原始字符串作为输出。
fmt.Printf("%sn",p) \etc..
将不胜感激
好的,两件事:
-
您没有"继承"
io.Writer
(您只是声明您的结构包含编写器)。在 go 中,接口是隐式的。如果你的结构实现了Write(p []byte) (n int, err, error)
,它是一个io.Writer
,可以与任何接受它的函数一起使用。时期。无需声明任何内容。 -
至于你的问题:
fmt.Printf("%sn", string(p))