golang接口

lzp2011150309 · · 1087 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

type LimitedReader struct {
       R Reader // underlying reader
       N int64 // max bytes remaining
}


func (l *LimitedReader) Read(p []byte) (n int, err error) {
       
}


这里LimitedReader实现了 Reader 接口的Read方法

func LimitReader(r Reader, n int64) Reader { return &LimitedReader{r, n} }

1.所以当你传入一个实现了Reader接口的类型的时候,LimitedReader.R=r,
  eg: var file=new os.File()
  LimitReader(file,100)的时候,Reader的是通过file实现的,


2.{ return &LimitedReader{r, n} }等同于
 {  var reader Reader=&LimitedReader{r, n}
   return reader
  }
所以这时

type LimitedReader struct {
    R Reader // file
   N int64 // 100
}

PS:http://www.cnblogs.com/hustcat/p/4007126.html



有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:lzp2011150309

查看原文:golang接口

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1087 次点击  
加入收藏 微博
上一篇:go中的接口
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传