接口类型是对其它类型的概括和抽象,golang的接口是隐式实现的,接口不会暴露其所含数据的布局、内部结构和基本操作,只提供一些方法。
定义:
package io
type Writer interface {
Write(p []byte) (n int, err error)
}
io.Writer可以在io这个包,直接调用Writer接口,这个接口会调用Write方法写入数据到某个地方。
接口的实现:
如果一个类型实现了一个接口的所有方法,那么这个类型实现了这个接口。
var w io.Writer
w = os.Stdout // OK,os.Stdout实现了io.Writer
解:
// io.Writer是一个有Write方法的接口
package io
type Writer interface {
Write(p []byte) (n int, err error)
}
// os.Stdout是*os.File指针,其包含很多方法,其中包括Write方法
var os.Stdout *os.File
func (*os.File).Write(b []byte) (n int, err error)
func (f *File) Write(b []byte) (n int, err error)
转载请注明:liutianfeng.com » 接口-Interface