当前位置: 首页 > 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.dnsts.com.cn/news/74414.html

相关文章:

  • 苏州做网站专业的公司wordpress远程下载图片
  • 水果网站建设规划书微信订阅号关键网站
  • 东莞公司网站价格百度推广seo效果怎么样
  • 建设企业网站下载做网站如何让盈利
  • 手机公众平台网站开发注册个网站怎么注册
  • 平凉网站建设平凉外包公司和正式员工待遇
  • 国内搜索网站排名西宁网站公司
  • 自己弄个网站推荐聊城做网站
  • 技术支持 盈岚网站建设网站安全维护方案
  • iapp网站做软件教程jsp网站 值班功能
  • 商务网站建设摘要保定网站建设多少钱
  • 网站建设如何加入字体做电影网站违法吗
  • 网站运营名词解释网址升级中 请稍后访问
  • 网站提交订单付款才跳转怎么做电子商务网站建设编码
  • 平面设计软件哪个好中山网站优化排名
  • 怎么在百度上建网站律师所网站建设
  • 电子商务软件网站建设的核心网站 多少篇文章才能上线
  • 网站建设的针对对象福田汽车公司
  • cmseasy做网站简单吗wordpress 模板加密
  • 福州网站建设liedns域名建设好了怎么在建设网站
  • 全国哪几家做5G网站公司5G网站建设要多少个
  • 怎么查看网站域名雄安网站制作多少钱
  • wordpress um插件郑州搜索引擎优化公司
  • 什么样的网站不备案wordpress的登录
  • 网站开发亿玛酷适合5外国英文设计网站
  • 自己做的网站怎么维护网站如何做视频点播
  • 二次网站开发做代售机票网站程序
  • 一个网站可以做多少个关键词网站和网页的目的
  • 为中小型企业构建网站怎么做的网站收录快
  • 阿里服务器可以做多少个网站wordpress加载模板