当前位置: 首页 > news >正文

学生管理系统 网站开发南宁网站设计公司排名

学生管理系统 网站开发,南宁网站设计公司排名,财务记账网站建设需要摊销吗,大兴模版网站建设哪家好一、GoLang 接口的定义 1、GoLang 中的接口 在 Go 语言中接口#xff08;interface#xff09;是一种类型#xff0c;一种抽象的类型接口#xff08;interface#xff09;定义了一个对象的行为规范#xff0c;只定义规范不实现#xff0c;由具体的对象来实现规范的细节…一、GoLang 接口的定义 1、GoLang 中的接口 在 Go 语言中接口interface是一种类型一种抽象的类型接口interface定义了一个对象的行为规范只定义规范不实现由具体的对象来实现规范的细节实现接口的条件 一个对象只要全部实现了接口中的方法那么就实现了这个接口换句话说接口就是一个需要实现的方法列表 2、定义一个 Usber 接口 定义了一个 Usber 接口让 Phone 和 Camera 结构体实现这个接口 package mainimport fmt//1、接口是一个规范 type Usber interface {start()stop() }//2.如果接口里面有方法的话必要通过结构体或通过自定义类型实现这个接口 type Phone struct{Name string }//3.手机摇实现 usb 接口的话必须先实现 usb 接口中的所有方法 func (p Phone) start() {fmt.PrintIn(p.Name,启动) } func (p Phone) stop() {fmt.PrintfIn(p.Name,关机) }func main() {p : Phone{Name : 华为手机}var p1 Usber //golang中几口就是一个数据类型p1 pp1.start()p1.stop() } /* 华为手机 启动 华为手机 关机*/ 二、空接口 1、空接口说明 golang 中空接口也可以之间当做类型来使用可以表示任意类型Golang 中的接口可以不定义任何方法没有定义任何方法的接口就是空接口空接口表示没有任何约束因此任何类型变量都可以实现空接口空接口在实际项目中用的是非常多的用空接口可以表示任意类型数据 2、空接口作为函数的参数 package mainimport fmt//空接口作为函数的参数func show (a interface{}){fmt.Printf(值%v,类型%T\n,a,a) }func main(){show(20) //值20类型intshow(你好 golang) //值您好 golang 类型stringslice : []int{1,2,34,5}show(slice) //值[1 2 34 5] 类型[]int } 3、切片实现空接口 package mainimport fmtfunc main() {var slice []interface{}{Snail,20,true,32.2}fmt.PrintIn(slice) //[Snail 20 true 32.2] } 4、map 的值实现空接口  package mainimport fmtfunc main() {//空接口作为 map 值var studentInfo make(map[string]interface{})studentInfo[name] SnailstudentInfo[age] 18studentInfo[married] falsefmt.PrintIn(studentInfo)// [age:18 married:false name:Snail] } 三、类型断言 一个接口的值简称接口值是由一个具体类型和具体类型的值两部分组成的这两部分分别称为接口的动态类型和动态值如果我们想要判断空接口中值的类型那么这个时候就可以使用类型断言其语法格式x.(T) x:表示类型为 interface{}的变量T表示断言x 可能是的类型 package mainimport fmtfunc main() {var x interface {}x hello golangv,ok :x.(string)if ok {fmt.PrintIn(v)}else {fmt.PrintIn(非字符串类型)} } 四、值接收者和指针接收者 1、值接收者 如果结构体中的方法是值接收者那么实例化后的结构体值类型和结构体指针类型都可以赋值给接口变量 package mainimport fmttype Usb interface {Start()Stop() } type Phone struct {Name string } func (p Phone) Start() {fmt.PrintIn(p.Name,开始工作) } func (p Phone) Stop() {fmt.Println(phone 停止) }func main() {phone1 : Phone{Name:华为手机}var p1 Usb phone1 //phone1 实现了 Usb接口 phone1 是 Phone 类型p1.Start()phone2 : Phone{ //华为手机开始工作Name:苹果手机}var p2 Usb phone2 //phone2 实现了 Usb 接口 phone2 是 *Phone 类型p2.Start() }2、指针接收者 如果结构体中的方法是指针接收者那么实例化后结构体指针类型都可以赋值给接口变量结构体值类型没法赋值给接口变量 package main import fmt type Usb interface {Start()Stop() } type Phone struct {Name string } func (p *Phone) Start() {fmt.Println(p.Name, 开始工作) } func (p *Phone) Stop() {fmt.Println(phone 停止) } func main() {/*错误写法phone1 : Phone{Name: 小米手机,}var p1 Usb phone1p1.Start()*///正确写法phone2 : Phone{Name: 苹果手机,}var p2 Usb phone2 //phone2 实现了 Usb 接口 phone2 是 *Phone 类型p2.Start()//苹果手机 开始工作 } 五、一个结构体实现多个接口 Golang 中一个结构体也可以实现多个接口 package mainimport fmttype AInterface interface {GetInfo() string } type Binterface interface {SetInfo(string,int) } type People struct{Name stringAge int }func (p People) GetInfo() string(){return fmt.Sprintf(姓名%v 年龄%d,p.Name,p.Age) }func (p *People) SetInfo(name string, age int) {p.Name namep.Age age }func main() {ver people People{Name:Snail,Age: 20,}// people实现了 Ainterface 和 Binterfacevar p1 AInterface peoplevar p2 Binterface peoplefmt.PrintIn(p1.GetInfo()) //姓名Snail 年龄20p2.SetInfo(pupu,21)fmt.PrintIn(p1.GEtInfo) //姓名pupu 年龄21 } 六、接口嵌套 接口与接口间可以通过嵌套创造出新的接口 package main import fmttype SayInterface interface {say() }type MoveInterface interface {move() }//接口嵌套 type Animal interface {SayInterfaceMoveInterface } type Cat struct {name string } func (c Cat) say() {fmt.PrintIn(喵喵喵) } func (c Cat) move(){fmt.PrintIn(猫会动) } func main() {var x Animalx Cat{name: 花花}x.move() // 猫会动x.say() // 喵喵喵 }
http://www.zqtcl.cn/news/663691/

相关文章:

  • 营销网站建设设计义乌 网站制作
  • 南通企业网站建设公司庆阳网站建设与制作
  • 做k12网站wordpress调用第一张图片不显示
  • 网站建设和维护要点网站建设完提交百度
  • app开发人员网站上海保洁服务网站建设
  • 周口网站制作公司哪家好苏州高新区住建局官网
  • 建设特效网站自助网站建设系统
  • 用软件做的网站权限管理如何让自己的网站被百度收录
  • 简历做的很棒的网站杭州公司网站建设电话
  • 购买腾讯云主机可以直接做网站舒兰网站建设
  • 环保主题静态网站php 手机网站源码
  • 做网站找哪家好要钱吗小程序开发合同
  • 速成美站东莞网站建设 包装材料
  • 丹阳网站建设案例自己做个网站怎么赚钱
  • 净水机企业网站源码浏览器下载安装2022最新版
  • 高端网站建设四川网页版微信怎么下载
  • 青岛做网站皆赴青岛博采wordpress怎么改密码忘记
  • 深圳最好的网站建设广西论坛网站建设
  • html5网站设计网站建设 广西
  • 顺德手机网站设计价位网站开发学习流程图
  • 班级网站设计合肥蜀山网站开发
  • 杭州网站建设培训ck播放器整合WordPress
  • 网站建设是什么软件品牌策划公司哪家好推荐
  • 网站转跳怎么做餐饮vi设计
  • 刘连康seo培训哪家强网站优化推广平台
  • 网站推广内容滁州做网站的
  • 黄山做网站公司山东省住房和城乡建设厅举报电话
  • 中医科网站建设素材上海文明城市建设网站
  • html课程教学网站模板手机微信小程序开发教程
  • 用电脑做兼职的网站比较好食品网站建设网站定制开发