``` 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 接口,局部变量就没有?