接口-Interface

数据类型 Liemer_Lius 193℃

接口类型是对其它类型的概括和抽象,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

喜欢 (1)

评论已关闭。