package main
import(
"fmt"
)
//定义一个数据写入器
type Data Writer interface{
Write Data(data interface{})error
}
//定义一个文件结构,用于实现data Writer
type file struct{
}
//实现data Writer接口中的Write data()方法
func (d *file)Write Data(data interface{})error{
//模拟写入数据
fmt.Println("Write data:",data)
return nil
}
func main(){
//实例化file
f:=file
//声明一个Data Writer接口
var Writer Data Writer
//将接口赋值f,也就是*file类型
writer=f
//使用Data Writer接口进行数据写入
writer.Write Data("data")
}
定义Data Writer接口。这个接口只有一个方法,即Write Data(),输入一个interface{}类型的data,返回一个error结构表示可能发生的错误。file的Write Data()方法使用指针接收器。输入一个interface{}类型的data,返回error。实例化file赋值给f,f的类型为*file。声明Data Writer类型的writer接口变量。将*file类型的f赋值给Data Writer接口的writer,虽然两个变量类型不一致。但是writer是一个接口,且f已经完全实现了Data Writer()的所有方法,因此赋值是成功的。Data Writer接口类型的writer使用Write Data()方法写入一个字符串。