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

外贸网站定制开发爱站网长尾关键词

外贸网站定制开发,爱站网长尾关键词,table制作网站,html5手机网站模板 下载前言:原因很简单,写的代码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.shuangfujiaoyu.com/news/54678.html

相关文章:

  • ASP 动态网站建设竞价排名的服务模式是
  • 网站前台代码百度网盘搜索引擎入口在哪
  • 安阳县政府官网seo推广要多少钱
  • ai制作海报南宁百度seo价格
  • 垂直网站导航是谁做的南京百度推广优化
  • 全国疫情地图实时动态搜索引擎优化的方法与技巧
  • 网站功能列表网站推广交换链接
  • 洛阳响应式建站百度怎么推广产品
  • 做自己的彩票网站网络营销和传统营销的区别有哪些
  • 学校网站制作多少钱做什么推广最赚钱
  • 免费软件安装网站社区建站网站系统
  • 门户网站开发平台百度推广优化技巧
  • 网站怎么做短信营销电商平台开发需要多少钱
  • wordpress主题知更鸟美化成都sem优化
  • 通州网站制作最近比较火的关键词
  • wordpress 7b2优化是什么意思
  • 如何用手机做网站吗优化推广网站淄博
  • 做网站做的好的公司有哪些sem运营
  • 做衣服网站的实验感想seo建站营销
  • 网站开发与运维面试问题电脑速成班短期电脑培训班
  • 在线设计logo字体seo点击工具帮你火21星热情
  • 网站建设简单网络营销方案模板
  • 无法调用wordpress济南优化网站的哪家好
  • 浙江杭州网站建设服务公司哪家好免费网站推广软件下载
  • 对网站排名没有太大影响的因素2345浏览器网址
  • 哪里有做独立网站的服务器软文写作营销
  • 2016年做网站能赚钱吗友情链接seo
  • 图像处理与网站开发成都sem优化
  • ps个人网站seo网站优化软件
  • 怎么自己做网站发优惠券seo网站优化教程