1. 首页
  2. 主题
  3. Go问与答

为什么 *bytes.Reader不能作为 *io.Reader的返回值呢?

mztlive · · 3206 次点击
![image.png](https://static.studygolang.com/210419/e0ac4a9541e822a0270f9394db4394c8.png) 我试图用 bytes.Reader([]byte{1,2,3}) 作为这个方法的返回值好像不行。 会提示 *bytes.Reader is not assignable to *io.Reader 请问这是为什么呢? bytes.Reader不是实现io.Reader接口吗?
r:=ioReader(bytes.Reader([]byte{1,2,3}) ) return &r
#2
更多评论
1、实现Read方法的是结构体指针`*bytes.Reader` 2、接口指针应该没撒意义吧,返回值不能为`io.Reader`?(个人粗浅认识) ``` func Test1() io.Reader{ return &bytes.Reader{} } func Test2() *io.Reader{ reader:=io.Reader(&bytes.Reader{}) return &reader } ```
#1
jan-bar
想要拥有,必定付出。
你的想法很危险啊。。为什么要返回`*io.Reader`,可以看看go源码里面基本都是返回`io.Reader`。对接口取指针没啥意义吧。
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中