The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
46fo

问一个关于 bytes.Buffer 的问题

  •  
  •   46fo · Jul 5, 2019 · 3094 views
    This topic created in 2678 days ago, the information mentioned may be changed or developed.
    ```
    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 接口,局部变量就没有?
    fork
    fork
    Jul 7, 2019❤️1
    1
    new 创建的是指针类型*bytes.Buffer, 只有指针类型实现了 io.Writer 接口
    46fo
    46fo
    OP
    Jul 8, 2019
    2
    @fork 3Q。我试过
    var buf bytes.Buffer
    w := zip.NewWriter(&buf)
    defer w.Close()
    这样就没问题了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1336 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:24 · PVG 03:24 · LAX 11:24 · JFK 14:24
    ♥ Do have faith in what you're doing.