【golang】 关于对象,接口讲解

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

GO 对于 “对象”的解释

一:在Go语言中,你可以给任意类型 ,添加相应的方法,

type Integer int

func (a Integer) Less(b Integer) bool {

return a < b

}

在这个例子中,我们定义了一个新类型Integer,它和int没有本质不同,只是它为内置的 int类型增加了个新方法Less()。

这样实现了Integer后,就可以让整型像一个普通的类一样使用:

func main() {  
var a Integer = 1

if a.Less(2) {

 fmt.Println(a, "Less 2")

 }
}

GO 对于 “接口”继承的解释

二:在Go语言中,只需要实现了接口要求的所有函数,我们就说实现了该接口。

type IFile interface {  
Read(buf [] byte) (n int, err error)  
Write(buf [] byte) (n int, err error)  
Seek(off int64, whence int) (pos int64, err error)
Close() error
}

type IReader interface {  
Read(buf []byte) (n int, err error)

}

type IWriter interface{  
Write(buf []byte) (n int, err error)

}

type ICloser interface {

Close() error

}


type File struct {

// ...

}

func (f File) Read(buf []byte) (n int, err error)  
func (f File) Write(buf []byte) (n int, err error)  
func (f File) Seek(off int64, whence int) (pos int64, err error)
func (f File) Close() error

  

尽管File类并没有从这些接口继承,甚至可以不知道这些接口的存在,但是File类实现了  这些接口,可以进行赋值:

var file1 IFile = new(File)

var file2 IReader = new(File)

var file3 IWriter = new(File)

var file4 ICloser = new(File)

接口赋值

1.将对象实例赋值给接口;

2.将一个接口赋值给另一个接口。


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

本文来自:Segmentfault

感谢作者:阿阿阿黄

查看原文:【golang】 关于对象,接口讲解

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

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