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

晚上睡不着网站2021免费网站可信认证在哪里做

晚上睡不着网站2021免费,网站可信认证在哪里做,渠道营销推广方案,做网站招商需要具备什么文章目录 duck typingnil不一定是空接口组合代替继承接口转换回具体的类型使用switch匹配接口的原始类型 duck typing golang中实现某个接口不需要像其它语言使用 implemet 去继承实现#xff0c;而是只要你的结构体包含接口所需的方法即可 package mainimport fmt而是只要你的结构体包含接口所需的方法即可 package mainimport fmttype Person interface {talk() }type XM struct { }func (receiver XM) talk() {fmt.Println(I am XM) }func main() {var p Personp XM{}p.talk() // I am XM } nil不一定是空接口 初始化的接口是等于 nil的接口底层其实有一个type来记录原始的struct当某个struct赋值给接口时接口会在type中记录该类型就算是nil也会记录此时接口打印出来是nil但和nil并不相等 }type XM struct { }func (X XM) talk() {fmt.Println(I am XM) }func main() {var p Personif p nil {fmt.Println(var p Person is nil) //var p Person is nil}var a *XMif a nil {fmt.Println(var a *XM is nil) //var a *XM is nil}p aif p ! nil {fmt.Println(var p ! nil) //var p ! nil}fmt.Println(p) // nil } 组合代替继承 通过内嵌组合来继承功能,XM匿名内嵌了Person就具有了Person的能力 package mainimport fmttype Person struct {Name string }func (receiver Person) Talk() {fmt.Printf(I am %s \n, receiver.Name) }type XM struct {Person }func main() {var xm XMp : Person{Name: Person}xm.Name XMxm.Talk() // I am XMp.Talk() // I am Person } 重写方法只需要声明一个同名方法即可 package mainimport fmttype Person struct {Name string }func (receiver Person) Talk() {fmt.Printf(I am %s \n, receiver.Name) }type XM struct {Person }func (receiver XM) Talk() {fmt.Printf(hello,I am %s, receiver.Name) }func main() {var xm XMxm.Name XMxm.Talk() // hello,I am XM } 接口转换回具体的类型 struct 转为接口只要struct 拥有 接口的方法即可将struct 赋值给接口如果想将接口转回struct可以使用 result,ok : interface.(struct), ok 代表是否能够成功转换 package mainimport fmttype IAnimal interface {Eat() }type Bridge struct { }func (b Bridge) Eat() {fmt.Println(I can eat) }func (b Bridge) Fly() {fmt.Println(I can fly) }type Fish struct { }func (f Fish) Eat() {fmt.Println(I can eat) }func ShowTime(animal IAnimal) {animal.Eat()if b, ok : animal.(Bridge); ok {b.Fly()} }func main() {var (f Fishb Bridge)ShowTime(f) // I can eatfmt.Println(--------------)ShowTime(b) // I can eat \n I can fly } ok 判断的是完全转换就算不ok转换后的结果也可以调用struct的方法但是不建议这么做 package mainimport fmttype IAnimal interface {Eat() }type Bridge struct {Name string }func (b Bridge) Eat() {fmt.Println(b.Name I can eat) }func (b Bridge) Fly() {fmt.Println(b.Name I can fly) }type Fish struct {Name string }func (f Fish) Eat() {fmt.Println(f.Name I can eat) }func ShowTime(animal IAnimal) {animal.Eat()b, ok : animal.(Bridge)fmt.Println(ok)b.Fly() }func main() {f : Fish{Name: fish}b : Bridge{Name: bridge}ShowTime(f)// fishI can eat// false// I can flyfmt.Println(--------------)ShowTime(b)//bridgeI can eat// true//bridgeI can fly } 使用switch匹配接口的原始类型 struct.(type) 可以获取接口的原始类型但是只能在switch中使用 package mainimport fmttype IAnimal interface {Eat() }type Bridge struct {Name string }func (b Bridge) Eat() {fmt.Println(b.Name I can eat) }func (b Bridge) Fly() {fmt.Println(b.Name I can fly) }type Fish struct {Name string }func (f Fish) Eat() {fmt.Println(f.Name I can eat) }func ShowTime(animal IAnimal) {switch animal.(type) {case Fish:fmt.Println(原先是Fish)case Bridge:fmt.Println(原先是Bridge)} }func main() {var (f Fishb Bridge)ShowTime(f) // 原先是FishShowTime(b) // 原先是Bridge }
http://www.hkea.cn/news/14438964/

相关文章:

  • 网站开发与维护学生作品集网站开发需要掌握技术
  • 哪些网站做夜场女孩多seo怎么优化一个网站
  • 网站验收流程做新网站的swot分析
  • 网站老域名跳转到新域名免费制作图文的软件
  • 深圳做营销网站的公司哪家好天涯社区和海南在线不能正常访问
  • 自己做h5网站吉林集安市建设局网站
  • 网站流量流出异常网站域名个人备案查询
  • ui设计师的网站深圳高水平网站制作
  • 网站假备案举报南山网站-建设深圳信科
  • 网站建设综合报告江苏建设信息电子证书
  • 做网站卖什么网络推广思路
  • 青海住房与城乡建设厅网站韩国风格网站整站源码
  • 企业网站美工设计地方门户网站模板
  • php网站开发简介建设网站的情况说明
  • 网站后台系统功能别人做的网站怎么打开吗
  • 学做实体店网站免费发布卖车信息网站
  • 旅游网站设计源码wordpress 的论坛模板下载
  • php做的大型网站个人如何做网页
  • 免费帮朋友做网站wordpress pdf 打印
  • 网站设计的公司蒙特青岛制作网站
  • 阳江网站制作erp系统都有哪几家
  • 网站怎么做支付系统汕头seo优化
  • 景区网站建设方案北京广告设计招聘
  • 炫酷网站有哪些php网站开发实例教程 pdf
  • 衡水阿里巴巴网站建设网站开发vs2015是什么
  • 天津建设网站培训东莞网络推广服务平台
  • 网站开发动态成都住建局官网住建扬尘监测
  • 企业网站建设及推广产品网站推广方案
  • iis怎么部署网站中国民营企业500强
  • 南昌市有帮做网站的吗网络推广员压力大吗