package mainimport "io"type MyClass struct{ writer *io.Writer}func (this *MyClass) WriteIt() { this.writer.Write([]byte("Hello World!"))}为什么 whenwriter是 的一个实现io.Writer,尝试调用该Write()函数时向我显示此错误this.writer.Write 未定义(类型 *io.Writer 没有字段或方法 Write)
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
正如 makhov 所说,这是因为writer在你的结构定义中MyClass是一个指向实现 Writer 接口的东西的指针,而不是实现了 writer 接口本身的东西。因此,您的代码应该是:
package main
import "io"
type MyClass struct{
writer io.Writer
}
func (this *MyClass) WriteIt() {
this.writer.Write([]byte("Hello World!"))
}
或者
package main
import "io"
type MyClass struct{
writer *io.Writer
}
func (this *MyClass) WriteIt() {
(*(this.writer)).Write([]byte("Hello World!"))
}
通常情况下,做第一个选项是有意义的(并且更惯用)。
- 2 回答
- 0 关注
- 154 浏览
添加回答
举报
0/150
提交
取消