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

西宁微网站建设网站建设公司宣传文案

西宁微网站建设,网站建设公司宣传文案,编辑网页的工具有哪些,网站设计原则的历史我们一起来回顾一下上一次说到的 interface{} 可以用来做多态 接口类型分为空接口类型和非空接口类型#xff0c;他们的底层数据结构不太一样 这里顺便说一下#xff0c;用来作态需要满足这样的条件#xff1a; 首先得有父类指针指向子类的对象这个接口还必须是非空接口…我们一起来回顾一下上一次说到的 interface{} 可以用来做多态 接口类型分为空接口类型和非空接口类型他们的底层数据结构不太一样 这里顺便说一下用来作态需要满足这样的条件 首先得有父类指针指向子类的对象这个接口还必须是非空接口里面得包含方法也就是使用的底层数据结构是 iface子类会去实现父类的具体方法 interface{} 注意断言 正常的使用断言写一个简单的 断言 demo type Animal interface{}func main() {var a Animal xiaomotongv, ok : a.(string)if !ok{fmt.Println(type error)}fmt.Println(v ,v) }断言注意写成 2 个返回值的一个是具体的值一个是 bool判断断言是否成功若成功则说明断言正确且 v 会被赋值为实际变量的值 切忌没头脑的强转 func main() {var a Animal xiaomotongv : a.(int)fmt.Println(v ,v) }上述这种写法若不判断是否断言成功直接强转程序是会 panic 的 执行上述程序后效果如下 go run main.go panic: interface conversion: main.Animal is string, not intgoroutine 1 [running]: main.main()D:/mycode/my_new_first/interface_test/main.go:13 0x4c exit status 2 程序崩掉那就是线上问题了 xdm 这里需要注意 当然我们也可以这样写 type Animal interface{}func main() {var a Animal xiaomotongswitch a.(type) {case string:fmt.Println(a type is string)case int:fmt.Println(a type is int)}}通过 switch 的方式来判断 接口的数据类型根据不同的数据类型来做不同的事情进行分类处理 用于反射的注意点 golang 里面有反射这个概念简单来说咱们可以通过反射包来实现获取接口真实的类型和真实的数据 举个小例子 通过反射来获取 Animal 接口的数据类型和具体的数据值 type Animal interface{}func main() {var a Animal xiaomotongv : reflect.ValueOf(a)fmt.Printf(v type , v.Type(), v , v.String()) }执行上述代码后效果如下 go run main.go v type %!(EXTRA *reflect.rtypestring, string v , stringxiaomotong)没毛病正常获取但是如果我们这样写的话是不是也可以正确执行呢 type Animal interface{}func main() {var a Animal xiaomotongv : reflect.ValueOf(a)fmt.Printf(v type , v.Type(), v , v.Int()) }看这个例子也就和上面的例子相差在输出的时候一个是v.String() 一个是v.Int() 可是结果却相差很大 go run main.go v type %!(EXTRA *reflect.rtypestring, string v , stringxiaomotong) D:\mycode\my_new_first\interface_testgo run main.go panic: reflect: call of reflect.Value.Int on string Valuegoroutine 1 [running]: reflect.Value.Int(...)C:/Program Files/Go/src/reflect/value.go:999 main.main()D:/mycode/my_new_first/interface_test/main.go:26 0x2bd exit status 2 执行上述代码go 程序给我们报了 panic 错误这里需要注意 程序崩溃的原因是我们将一个 string 类型的值反射成一个 Int 类型的值直接在 反射包里面就给我们报了 panic 小知识大挑战简单的写 2 个注意事项给 xdm 提个醒 欢迎点赞关注收藏 朋友们你的支持和鼓励是我坚持分享提高质量的动力 好了本次就到这里 技术是开放的我们的心态更应是开放的。拥抱变化向阳而生努力向前行。 我是阿兵云原生欢迎点赞关注收藏下次见~
http://www.hkea.cn/news/14439330/

相关文章:

  • 网站推广优化外包便宜win 2012网站建设
  • 高权重网站收录问题扁平化网站设计方案
  • 珠海商城网站制作网站开发方案书博客
  • 请别人做网站注意事项手机版网站建设价格
  • 中考复读学校网站怎么做佛山网站设计怎么做
  • 品牌网站建设报价方案百度seo优化技术
  • 网站运营包括哪些内容商店软件下载
  • 广州哪里有做公司网站 什么价有没有手机可以看的网站免费的
  • 建设网站首页应该采用网站做排行多少费用
  • 专业建网站平台加盟凡科建站
  • 网站降权的表现seo推广软件排行榜前十名
  • 企业网站好做吗优化就是开除吗
  • 记事本做网站素材代码微信小程序公司
  • 自己做的网站如何上百度阿里巴巴网站怎么做
  • vue响应式网站开发传奇世界游戏官网
  • 响应式网站建设的未来发展6个人做什么网站
  • 简述电子商务网站建设的主要步骤住房和城乡建设官网证书查询
  • 外贸网站小语种应届毕业生简历模板
  • 外贸公司网站制作价格什么是培训网站建设
  • 河北网站制作价格深圳vi设计多少钱
  • iis网站连接数据库失败网站 ip修改备案流程
  • 我要自学网网站开发怎样做支付网站
  • 为什么广告不集中建设广告网站珠海网站制作报价
  • 制作线下交易平台网站建设成都做网站多少钱
  • 建设网站公司兴田德润官方地址wordpress 小说网站
  • app免费制作网站济南在线
  • 企业公司网站建设ppt青海城乡住房建设厅网站
  • 永康网站优化怎么开发手机app软件
  • 电商设计网站西安网站建设公司排行榜
  • 郑州优化网站公司网站设计步骤详解