GO 对于 “对象”的解释函数
一:在Go语言中,你能够给任意类型 ,添加相应的方法,code
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语言中,只须要实现了接口要求的全部函数,咱们就说实现了该接口。it
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)
接口赋值file
1.将对象实例赋值给接口;方法
2.将一个接口赋值给另外一个接口。error