### 编译如下代码
```go
type myType int
func (p *myType) Write(data []byte) (n int, err error) {
return len(data), nil
}
func main() {
var b myType
fmt.Fprintf(b, "1111") // <--- 编译有错误
}
```
### 错误如下:
`cannot use b (type myType) as type io.Writer in argument to fmt.Fprintf:
myType does not implement io.Writer (Write method has pointer receiver)`
大概意思是说因为方法的接受者是指针,这样并不能实现 `io.Writer` 接口;将指针接受者改为`值接收`之后就好了;请问为什么指针接受者实现了接口,就不能赋值给接口变量呢,为啥这样就不算实现了接口呢?
var b myType -> var b *myType 你声明的不是指针类型的myType
或者
fmt.Fprintf(b, "1111") -> fmt.Fprintf(&b, "1111") 取变量b的地址
#1