dqndc26628 2012-09-07 19:36
浏览 9
已采纳

Go的运行时库文档过时了吗?

So, I'm working on parsing a POST using GO. What I want is the body of the post, so I try the following (r is of type *http.Request in this context):

var body io.Reader
var d []byte
body = r.Body.Reader
body.Read( d)

However, this results in a compilation error:

Compile error: <file>:44: 
    r.Body.Reader undefined (type io.ReadCloser has no field or method Reader)

Odd. I could have sworn that it was defined in the docs... Ah! here it is.

Now, I'm fairly new to Go, but this smells a little odd -- what have I screwed up?

  • 写回答

2条回答 默认 最新

  • doupinwan0563 2012-09-07 19:46
    关注

    From your link, the doc for a ReadCloser is:

    type ReadCloser interface {
        Reader
        Closer
    }
    

    What this is telling you, is that a ReadCloser interface is composed of a Reader and a Closer functionality. It IS both. That means the ReadCloser takes on those interface definitions. They are not actually members, the way you are accessing them.

    A Reader is:

    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

    So that means you should be accessing Read like this:

    body = r.Body
    body.Read(d)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)