我有以下代码:
type FWriter struct {
WriteF func(p []byte) (n int,err error)
}
func (self *FWriter) Write(p []byte) (n int, err error) {
return self.WriteF(p)
}
func MyWriteFunction(p []byte) (n int, err error) {
// this function implements the Writer interface but is not named "Write"
fmt.Print("%v",p)
return len(p),nil
}
MyFWriter := new(FWriter)
MyFWriter.WriteF = MyWriteFunction
// I want to use MyWriteFunction with io.Copy
io.Copy(MyFWriter,os.Stdin)
我想要做的是创建一个 Writer 接口来包装,MyWriteFunction因为它没有命名为“Write”,我不能将它用于任何需要“Writer”接口的东西。
此代码将无法正常工作,因为它会抱怨:
方法 MyWriterFunction 不是表达式,必须调用
我在这里做错了什么?我怎样才能设置WriteF为MyWriteFunction?
注意:我尽可能地简化了这个问题,实际上我有一个结构体,它有MyWriteFunction一个普通的 Write 函数,所以它变得有点复杂......(如果有更好的方法来解决我的这个问题,那么我会很高兴听到的!)
慕田峪4524236
蝴蝶不菲
相关分类