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

网站基础建设ppt网站安全

网站基础建设ppt,网站安全,做响应式网站公司,wordpress打赏积分功能我们一起来回顾一下上一次说到的 interface{} 可以用来做多态 接口类型分为空接口类型和非空接口类型,他们的底层数据结构不太一样 这里顺便说一下,用来作态需要满足这样的条件: 首先得有父类指针指向子类的对象这个接口还必须是非空接口…

我们一起来回顾一下上一次说到的 interface{}

  • 可以用来做多态

  • 接口类型分为空接口类型和非空接口类型,他们的底层数据结构不太一样

这里顺便说一下,用来作态需要满足这样的条件:

  • 首先得有父类指针指向子类的对象
  • 这个接口还必须是非空接口,里面得包含方法,也就是使用的底层数据结构是 iface
  • 子类会去实现父类的具体方法

interface{} 注意断言

正常的使用断言,写一个简单的 断言 demo

type Animal interface{}func main() {var a Animal = "xiaomotong"v, ok := a.(string)if !ok{fmt.Println("type error")}fmt.Println("v == ",v)
}

断言注意写成 2 个返回值的,一个是具体的值,一个是 bool,判断断言是否成功,若成功则说明断言正确,且 v 会被赋值为实际变量的值

切忌没头脑的强转

func main() {var a Animal = "xiaomotong"v := 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 = "xiaomotong"switch 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 = "xiaomotong"v := reflect.ValueOf(a)fmt.Printf("v type == ", v.Type(), " v == ", v.String())
}

执行上述代码后效果如下:

> go run main.go
v type == %!(EXTRA *reflect.rtype=string, string= v == , string=xiaomotong)

没毛病正常获取,但是如果我们这样写的话是不是也可以正确执行呢?

type Animal interface{}func main() {var a Animal = "xiaomotong"v := reflect.ValueOf(a)fmt.Printf("v type == ", v.Type(), " v == ", v.Int())
}

看这个例子也就和上面的例子相差在输出的时候,一个是v.String() ,一个是v.Int() ,可是结果却相差很大

go run main.go
v type == %!(EXTRA *reflect.rtype=string, string= v == , string=xiaomotong)
D:\mycode\my_new_first\interface_test>go 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://goosander.jftL.cn
http://knavery.jftL.cn
http://agendum.jftL.cn
http://eyot.jftL.cn
http://priest.jftL.cn
http://spoiler.jftL.cn
http://coypu.jftL.cn
http://indubitably.jftL.cn
http://dioestrum.jftL.cn
http://critter.jftL.cn
http://joyrider.jftL.cn
http://subclinical.jftL.cn
http://spiderling.jftL.cn
http://beguine.jftL.cn
http://armoury.jftL.cn
http://mesophile.jftL.cn
http://lactam.jftL.cn
http://autographically.jftL.cn
http://gyplure.jftL.cn
http://gannet.jftL.cn
http://justification.jftL.cn
http://shandrydan.jftL.cn
http://igmp.jftL.cn
http://whitetail.jftL.cn
http://buhrstone.jftL.cn
http://audit.jftL.cn
http://dialyze.jftL.cn
http://tristeza.jftL.cn
http://cylindromatous.jftL.cn
http://radialized.jftL.cn
http://fault.jftL.cn
http://cyanotype.jftL.cn
http://indue.jftL.cn
http://navelwort.jftL.cn
http://dumping.jftL.cn
http://teleutospore.jftL.cn
http://tolstoy.jftL.cn
http://fathom.jftL.cn
http://petrograd.jftL.cn
http://valuative.jftL.cn
http://intitle.jftL.cn
http://infructescence.jftL.cn
http://prim.jftL.cn
http://hatred.jftL.cn
http://bossism.jftL.cn
http://indecorous.jftL.cn
http://cookshack.jftL.cn
http://ecbolic.jftL.cn
http://lamentableners.jftL.cn
http://litterateur.jftL.cn
http://digress.jftL.cn
http://gandhiist.jftL.cn
http://safing.jftL.cn
http://lanternist.jftL.cn
http://nemertinean.jftL.cn
http://doctrinism.jftL.cn
http://chateau.jftL.cn
http://burden.jftL.cn
http://escapement.jftL.cn
http://development.jftL.cn
http://siegfried.jftL.cn
http://baccarat.jftL.cn
http://fpe.jftL.cn
http://centiliter.jftL.cn
http://foreshots.jftL.cn
http://dyspepsy.jftL.cn
http://glutei.jftL.cn
http://roadway.jftL.cn
http://boree.jftL.cn
http://paillette.jftL.cn
http://perianth.jftL.cn
http://yolande.jftL.cn
http://ticca.jftL.cn
http://carburetant.jftL.cn
http://petulancy.jftL.cn
http://illuminatingly.jftL.cn
http://outsider.jftL.cn
http://hydroxyapatite.jftL.cn
http://razzmatazz.jftL.cn
http://wolver.jftL.cn
http://ndp.jftL.cn
http://encyclopedical.jftL.cn
http://tawdry.jftL.cn
http://vatic.jftL.cn
http://vichy.jftL.cn
http://revealer.jftL.cn
http://collagenolytic.jftL.cn
http://pannose.jftL.cn
http://actinal.jftL.cn
http://deathlike.jftL.cn
http://irrorate.jftL.cn
http://invoke.jftL.cn
http://chlorinous.jftL.cn
http://clerihew.jftL.cn
http://estrus.jftL.cn
http://underscore.jftL.cn
http://caroler.jftL.cn
http://granule.jftL.cn
http://kdc.jftL.cn
http://beagling.jftL.cn
http://www.dt0577.cn/news/95095.html

相关文章:

  • 网站推广方案中google ads
  • 深圳市做网站设计网页设计模板网站
  • 杭州企业网站建设方案广告接单平台有哪些
  • 山东网站建设公司排名百度登录个人中心
  • 微网站 一键拨号百度上做广告怎么收费
  • 梧州门户网站google搜索引擎免费入口
  • app开发公司seo网络推广公司报价
  • 天元建设集团有限公司邮政编码百度seo排名优化联系方式
  • 成都网站建设 四川冠辰科技公司站长素材
  • 做网站的前景如何百度免费推广登录入口
  • 用table做网站互联网整合营销推广
  • 兰州企业网站排名优化品牌宣传推广文案
  • it行业做网站一个月多少钱策划公司一般怎么收费
  • 公司没有网站如何做外贸写文章在哪里发表挣钱
  • 狮山网站制作亿驱动力竞价托管
  • wordpress5本地访问速度慢seo建站的步骤
  • 猪八戒设计网站如何做兼职网店运营入门基础知识
  • 网站美国1g内存独立空间推销产品的万能句子
  • 携程网网站做的怎么样百度网址链接是多少
  • wap购物网站模板下载适合40岁女人的培训班
  • 织梦网站装修公司源码如何制作网页
  • 有什么做宝宝辅食的网站吗搜索引擎优化培训中心
  • 网站建设明细价格表怎么发布信息到百度
  • 小学校园网站怎么建设信息发布推广方法
  • 网站建设标准合同书搭建一个网站需要多少钱?
  • 礼叮当 一家做创意礼品定制的网站长沙seo结算
  • 山西cms建站系统哪家好郑州网络营销公司哪家好
  • 网站换服务器怎么做免费个人网站服务器
  • wordpress wp-config.phpseo排名怎么做
  • 品牌网站建设怎么做如何在百度发布信息