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

网站建设一年多少恰微信小商店和小程序商城的区别

网站建设一年多少恰,微信小商店和小程序商城的区别,做网站专题怎样添加微博,甘肃省住房和城乡建设厅网站首页接口与多态 何为接口 在面向对象的领域里#xff0c;接口一般这样定义#xff1a;接口定义一个对象的行为。接口只指定了对象应该做什么#xff0c;至于如何实现这个行为#xff08;即实现细节#xff09;#xff0c;则由对象本身去确定。   在 Go 语言中#xff0c;…接口与多态 何为接口 在面向对象的领域里接口一般这样定义接口定义一个对象的行为。接口只指定了对象应该做什么至于如何实现这个行为即实现细节则由对象本身去确定。   在 Go 语言中接口就是方法签名Method Signature的集合。当一个类型定义了接口中的所有方法我们称它实现了该接口。接口指定了一个类型应该具有的方法并由该类型决定如何实现这些方法。 接口定义 使用type关键字来定义接口 如下所示定义了一个叫order的接口接口要求必须实现printName方法 type order interface{printName() }接口的实现 如果有一个类型/结构体实现了一个接口要求的所有方法我们就可以称它实现了该接口。 接口实现多态 一个接口在不同对象上的不同表现。这就是多态。在 Go 语言中是通过接口来实现的多态。 package mainimport (fmtstrconv )//定义一个接口 type order interface{countmoney() intpaymoney() string }type hamburger struct{name stringquantity intprice int }func (ham hamburger) countmoney() (int){return ham.quantity*ham.price }func (ham hamburger) paymoney() (string){//strconv.Itoa() 可以将数字转换成对应的字符串类型的数字。return 所购买的 strconv.Itoa(ham.quantity) 个ham.name共计 strconv.Itoa(ham.countmoney()) 元 }type roastrice struct{name stringquantity int price int }func (roa roastrice) countmoney() (int){return roa.quantity*roa.price }func (roa roastrice) paymoney() (string){return 所购买的 strconv.Itoa(roa.quantity) 个roa.name共计 strconv.Itoa(roa.countmoney()) 元 }func calaulateSum(orders []order)(int){var sumPrice intfor _,now : range orders{fmt.Println(now.paymoney())sumPrice now.countmoney()}return sumPrice }func main(){ham : hamburger{烤鸡汉堡,2,18,}rice : roastrice{烤饭,5,2,}orders : []order{ham,rice}sumPrice : calaulateSum(orders)fmt.Printf(这顿饭共计%d元,sumPrice) }接口使用的注意事项 1.方法调用的限制 接口是一组固定的方法集由于静态类型的限制接口变量有时仅能调用其中特定的一些方法。 下面这段代码会报错 type Phone interface{call() }type iPhone struct{name string }func (ipone iPhone) call(){fmt.Println(Hello iPhone.) }func (iphone iPhone) send_wechat(){fmt.Println(Hello Wechat) }func main(){var phone Phonephone iPhone{xins iphone}phone.call()phone.send_wechat() }提示我们 Phone 类型的方法没有 send_wechat 的字段或方法。 原因也很明显因为我们的phone对象显式声明为 Phone 接口类型因此 phone调用的方法会受到此接口的限制。 修改方法隐式实现 Phone 接口如此一来方法的调用就不会受到接口类型的约束。 /* var phone Phonephone iPhone{xins iphone} */phone : iPhone{xins iphone}phone.call()phone.send_wechat()2.调用函数时的隐式转换 Golang 语言中的函数调用都是值传递的变量会在方法调用前进行类型转换。 eg:下面一段是可以正常运行的代码 func printTpe(i interface{}){switch i.(type){case int:fmt.Println(参数的类型是 int)case string:fmt.Println(参数的类型是 string)} }func main(){a:10printTpe(a) }但是如果你把函数内的内容搬到到外面来 func main(){a:10switch a.(type){case int:fmt.Println(参数的类型是 int)case string:fmt.Println(参数的类型是 string)} }报错 当一个函数接口 interface{} 空接口类型时我们说它可以接收什么任意类型的参数江湖上称之为无招胜有招。就是把传入函数的参数值注意Go 语言中的函数调用都是值传递的的类型隐式的转换成 interface{} 类型。 所以要想不通过接收空接口类型的函数进行类型判断我们需要进行显示转换 func main(){a:10switch interface{}(a).(type){case int:fmt.Println(参数的类型是 int)case string:fmt.Println(参数的类型是 string)} }
http://www.hkea.cn/news/14307379/

相关文章:

  • iis7搭建网站织梦昆明网站建设一条龙服务
  • 做游戏脚本的网站wordpress 浏览次数插件
  • 天津营销型网站建设大连仟亿科技网站建设公司 概况
  • 做企业网站后期还需要费用吗重庆软件开发
  • 长沙制作网页网站修邦建设网站
  • 有没有专门做印刷图的网站seo网站快速排名外包
  • 电商网站建设优缺点郑州外贸网站建设及维护
  • xcode 网站开发网页专题设计
  • 枣庄建设工程管理局网站wordpress 列表 插件
  • 网站建设方案书 阿里云西安电子商务网站开发
  • 网页制作基础教程visual studio code网站怎么做seo_
  • 网站建设html代码网站推广方案怎么写的
  • 安徽建设学校网站wordpress自动生成二维码
  • 山西省建设厅招标网站成品源码1988
  • 杭州网站推广服务哈尔滨安康养老院收费标准
  • 专业建站商收费wordpress
  • 企业建站套餐免费提供网站建设
  • 什么专业是做网站网址后缀名大全
  • 网站备案不注销有什么后果电子商务网站是什么意思
  • 怎么做查询网站超级优化基因液
  • 坪山住房和建设局网站敦煌做网站的公司电话
  • 集团门户网站建设费用实体电商app定制开发
  • 网站后台管理系统密码手机app推荐
  • 教学网站开发背景及意义有什么网站可以接活做设计标志
  • 企业网站安全建设方案35互联做的网站后台怎样登录
  • 做聚类热图的网站做一个app上架需要多少费用
  • 专线网站建设中国站长查询域名备案
  • 国外平面设计欣赏网站百度快照首页
  • 网站设计分析案例东莞企业网站设计专业服务
  • 天津做系统集成的公司网站网站首页图片切换代码