61396-Go语言程序设计项目化教程(微课版)4.4 接口与结构体.pptx
《61396-Go语言程序设计项目化教程(微课版)4.4 接口与结构体.pptx》由会员分享,可在线阅读,更多相关《61396-Go语言程序设计项目化教程(微课版)4.4 接口与结构体.pptx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、接口与结构体接口与结构体接口声明接口的嵌套接口与结构体01.03.02.目录类型断言04.01接口声明接口定义接口特点接口格式空接口error接口接口是对类型行为的约定接口是一系列方法的集合接口是一种高度抽象的数据类型接口中的方法不包含代码接口中的方法是抽象的接口中不包含变量本质是一种关于对象功能的约定接口的定义接口是双方约定的一种合作协议,接口实现者不需要关心接口会怎样被使用,只需要实现接口里面所有的方法即可接口不支持直接实例化,只能通过具体的类来实现声明的所有方法,同时函数的函数名、函数参数和函数返回值必须完全一样Go语言中的接口支持赋值操作,从而快速实现接口与实现类的映射接口的特点1接口
2、声明接口声明type接口类型名interface方法名1(参数列表1)返回值列表1方法名2(参数列表2)返回值列表2.标准格式声明接口接口类型名:使用type将接口定义为自定义的类型名,接口在命名时,一般会在单词后面添加er;方法名:当方法名首字母是大写时,同时接口类型名首字母也是大写时,这个方法可以被接口所在的包(package)之外的代码访问;参数列表:表示传入到方法中的值;返回值列表:方法返回值。typePhoneinterfacecall()SendMsg(msgstring)bool语法要点1接口声明接口声明type接口类型名interface方法名1(参数列表1)返回值列表1方法名
3、2(参数列表2)返回值列表2.type(变量名类型)方法名1(参数列表1)返回值列表1type(变量名类型)方法名2(参数列表2)返回值列表2标准格式接口的实现/标准格式接口的实现案列typeAndroidPhonestructfunc(aAndroidPhone)call()fmt.Println(AndroidPhonecalling)func(aAndroidPhone)SendMsg(msgstring)boolfmt.Println(AndroidPhonesendingmsg)returntrue1接口声明接口声明是接口类型的特殊形式空接口没有任何方法,因此任何类型都无须实现空接口
4、从实现的角度看,任何值都满足这个接口的需求空接口类型可以保存任何值,也可以从空接口中取出原值空接口packagemainimportfmtfuncmain()varanyinterfaceany=1fmt.Println(any)any=hellofmt.Println(any)any=falsefmt.Println(any)1接口声明接口声明运行结果为:1hellofalse作为错误处理的标准模式如果函数要返回错误,则返回值类型列表中肯定包含errorerror处理过程类似于C语言中的错误码,可逐层返回,直到被处理error接口packagemainimport(errorsfmtmath
5、)funcSqrt(ffloat64)(float64,error)iff0return-1,errors.New(开平方根的数字不能小于0)returnmath.Sqrt(f),nilfuncmain()result,err:=Sqrt(-13)iferr!=nilfmt.Println(err)elsefmt.Println(result)1接口声明接口声明运行结果为:开平方根的数字不能小于002接口与结构体接口与结构体的关系一个结构体类型实现多个接口一个接口被多个结构体实现接口与结构体关系接口和结构体类型之间是多对多的关系一个结构体类型可以实现多个接口一个接口也可以被多个结构体类型所实现
6、2接口与结构体接口与结构体type接口类型名1interface方法名1(参数列表1)返回值列表1type接口类型名2interface方法名2(参数列表2)返回值列表2一个结构体类型实现多个接口2接口与结构体接口与结构体type结构体struct字段名1字段类型1字段名2字段类型2type(结构体名结构体)方法名1(参数列表1)返回值列表1type(结构体名结构体)方法名2(参数列表2)返回值列表22接口与结构体接口与结构体packagemainimportfmttyperuninterfacerunning(timeint)inttypeeatinterfaceeating(foodstr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 61396-Go语言程序设计项目化教程微课版4.4 接口与结构体 61396 Go 语言程序设计 项目 教程 微课版 4.4 接口 结构
限制150内