```
buf := new(bytes.Buffer)
w := zip.NewWriter(buf)
defer w.Close()
```
这样没问题
```
var buf bytes.Buffer
w := zip.NewWriter(buf)
defer w.Close()
```
这样就报
cannot use buf (type bytes.Buffer) as type io.Writer in argument to zip.NewWriter:
bytes.Buffer does not implement io.Writer (Write method has pointer receiver)
想问的是为什么 new 出来的就有 io.Writer 接口,局部变量就没有?
buf := new(bytes.Buffer)
w := zip.NewWriter(buf)
defer w.Close()
```
这样没问题
```
var buf bytes.Buffer
w := zip.NewWriter(buf)
defer w.Close()
```
这样就报
cannot use buf (type bytes.Buffer) as type io.Writer in argument to zip.NewWriter:
bytes.Buffer does not implement io.Writer (Write method has pointer receiver)
想问的是为什么 new 出来的就有 io.Writer 接口,局部变量就没有?