golang学习的点点滴滴:接口复制和接口查询

golang学习的点点滴滴:接口复制和接口查询,第1张

概述package main import "fmt"type IFile interface { Read() Write()}type IReader interface { Read()}type File struct { }func (f *File) Read() { }func (f *File) Write() { }func main
packagemainimport"fmt"typeIfileinterface{	Read()	Write()}typeIReaderinterface{	Read()}typefilestruct{	}func(f*file)Read(){	}func(f*file)Write(){	}funcmain(){	f:=new(file)	varf1Ifile=f				//ok因为file实现了Ifile中的所有方法	varf2IReader=f1			//ok因为Ifile中包含IReader中所有方法	//varf3Ifile=f2		//error因为IReader并不能满足Ifile(少一个方法)	//	varf3IReader=new(file)		//ok因为file实现了IReader中所有方法	//varf4Ifile=f3	//error因为IReader并不能满足Ifile同上..如何解决呢?要用接口查询		//接口查询	//这个if语句检查file1接口指向的对象实例是否实现了Ifile接口	//如果实现了	//则执行特定的代码。	//注意:这里强调的是对象实例,也就是new(file)	//file包含Ifile里所有的方法	//所以ok=true	iff5,ok:=f3.(Ifile);ok{		fmt.Println(f5)	}	//询问接口它指向的对象是否是某个类型	//这个if语句判断file1接口指向的对象实例是否是*file类型	//依然ok	iff6,ok:=f3.(*file);ok{		fmt.Println(f6)	}	fmt.Println(f1,f2,f3)}
总结

以上是内存溢出为你收集整理的golang学习的点点滴滴接口复制和接口查询全部内容,希望文章能够帮你解决golang学习的点点滴滴:接口复制和接口查询所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1289890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存