加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang学习的点点滴滴:接口

发布时间:2020-12-16 18:49:13 所属栏目:大数据 来源:网络整理
导读:packagemain//定义一个接口//有两个方法//注意:方法不能加functypeIFileinterface{Read(filestring)(buf[]byte)Write(filestring,buf[]byte)}typeIReaderinterface{Read(filestring)(buf[]byte)}typeIWriterinterface{Write(filestring,buf[]byte)}//定义一
packagemain

//定义一个接口
//有两个方法
//注意:方法不能加func
typeIFileinterface{
	Read(filestring)(buf[]byte)
	Write(filestring,buf[]byte)
}

typeIReaderinterface{
	Read(filestring)(buf[]byte)
}

typeIWriterinterface{
	Write(filestring,buf[]byte)
}

//定义一个结构体
//通过下面定义的方法可以看出:
//File同时实现了IFileIReaderIWriter所有的方法
//所以File实现了IFile也实现了IReader和IWriter
typeFilestruct{
	
}

//结构体中的方法
func(f*File)Read(filestring)(buf[]byte){
	returnnil
}

//结构体中的方法
func(f*File)Write(filestring,buf[]byte){
	
}

funcmain(){
	f:=new(File)

	//File同时实现了IFileIReaderIWriter所有的方法
	//所以File实现了IFile也实现了IReader和IWriter
	//所以这些转型都是符合语法的
	varf1IFile=f
	varf2IReader=f
	varf3IWriter=f

	f.Read("aa")
	f1.Read("bb")
	f2.Read("cc")
	//IWriter只定义了Write方法
	f3.Write("dd",[]byte{1,2})
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读