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

石家庄网站制作sem专员

石家庄网站制作,sem专员,石家庄网站制作费用,阐述网络推广的主要方法前言:原因很简单,写的代码panic了。报错如下。为此专门看下golang的类型断言。 “[PANIC]interface conversion: interface {} is string, not float64”。 1、类型断言(assertion) 所谓“类型断言”即判断一个变量是不是某个类型的实例(简单来讲就是判…

前言:原因很简单,写的代码panic了。报错如下。为此专门看下golang的类型断言。

“[PANIC]interface conversion: interface {} is string, not float64”。

1、类型断言(assertion)

所谓“类型断言”即判断一个变量是不是某个类型的实例(简单来讲就是判断所属类型)。

举例例子,interface属于一般类型其具体类型是不明确的,当要将其转换成具体类型的时候就要使用类型断言。如果不使用的话一旦类型对不上就会出现类似前面所说的panic。

1.1、类型assertion和类型switch只用作用与interface{}
package mainimport ("fmt"
)func main() {var v string = "hello" // var v interface{} = "hello"s, ok := v.(string)fmt.Println("s=", s, ",ok=", ok)}

对于上述代码会得到如下错误。

1.2、断言失败则会panic

如下前者:v到string的类型assertion成功,返回s等于“hello”

如下后者:v到float64的类型assertion失败,导致panic。

package mainimport ("fmt"
)func main() {var v interface{} = "hello"s := v.(string)fmt.Println("s=", s)f := v.(float64)  //会painicfmt.Println("f=", f)}
1.3、使用ok的方式避免panic

当assertion失败的时候,ok返回false就不会引发panic行为。

package mainimport ("fmt"
)func main() {var v interface{} = "hello"s, _ := v.(string)fmt.Println("s=", s)f, ok := v.(float64)if ok {fmt.Println("f=", f)} else {fmt.Println("not a float64")}}

执行结果如下:

1.4、v.(type)配合switch进行类型判断

还有一种方式就是v.(type)配合switch进行类型判断。

package mainimport ("fmt"
)func main() {//var v interface{} = "hello"var v interface{} = 1234switch t:=v.(type) {case string:fmt.Println("v is type of string")case int:fmt.Println("v is type of int")case float64:fmt.Println("v is type of float64")}}

1.5、小结

v.(T)的写法可以在运行是判断v的值是不是T类型,是的话就直接使用其值,不是则panic;

类型assertion和类型switch非常类似于C++的多态类型之间的转换。

http://www.dinnco.com/news/36984.html

相关文章:

  • 怎么做网站首页百度一下浏览器
  • 用六类网站做电话可以吗产品推广软文范文
  • 网站策划书内容如何在手机上开自己的网站
  • 怎样做展示型网站项目平台
  • 全国疫情地图实时动态黑帽seo培训大神
  • php网站做语言包培训学校
  • 深圳 网站建设培训班seo发帖工具
  • 韩国风格网站广告联盟平台入口
  • 漳州找人做网站要求哪些服务营销包括哪些内容
  • 在郑州建设网站这么做职业教育培训机构排名前十
  • 外墙设计装修效果图软件seo搜索引擎优化心得体会
  • 河南做网站需要多少钱企业网站分析报告
  • 租赁网站空间更换怎么做网店运营具体做什么
  • 商城网站有哪些功能开鲁seo网站
  • dw做旅游网站毕业设计模板下载外链网站大全
  • 定制企业网站网络推广营销公司
  • 天津东丽做网站seo积分优化
  • 视频播放网站 模板百度一下官网页
  • 做设计那些网站可以卖设计常见的搜索引擎
  • 网站SEO建设北京百度推广公司
  • 做游戏网站多钱网络营销服务的内容
  • 有哪些做农产品的网站厦门网站建设平台
  • 自助做app的网站怎样做好竞价推广
  • php网站开发实例教程 pdf扫一扫识别图片
  • 广州建站推广武汉百度关键词推广
  • 经销商自己做网站合适吗黄页网络的推广网站有哪些
  • 自己做网站视频教程友情链接搜读
  • 东莞市企业网站建设哪家好营销技巧和营销方法心得
  • 织梦门户网站源码下载技能培训班有哪些
  • 长沙优化网站排名今天中国新闻