Golang 类型断言或者说判断数据是否属于某个类型

yufei       1 年, 2 月 前       252

有时候我们拿到一些 interface{} 的数据,又不确定都会传什么类型,就需要用到类型断言。

类型断言最简单的方法就是

var c interface{} // 随便一个 interface{} 数据
c = 33.33

_cc := c.(float64) // 判断  c 参数是否属于 float64 类型,是则返回数据
fmt.Println(_cc)   // 打印数据

_cc2 := c.(string) // 判断  c 参数是否属于 string 类型,不是则 panic 异常
fmt.Println(_cc2)  // 打印数据

上面这种 _cc := c.(float64) 是最简单的用法,但这种用法如果断言错了会跑出异常,如果不想抛出异常,则需要下面这种方法

var c interface{} // 随便一个 interface{} 数据
c = 33.33

if _cc, ok := c.(float64); ok { // 判断  c 参数是否属于 float64 类型,如果是 ok 为 true
    fmt.Println(_cc) // 打印数据
}

if _cc2, ok := c.(string); ok { // 判断  c 参数是否属于 string 类型,如果不是 ok 为 false
    fmt.Println(_cc2) // 打印数据
}
目前尚无回复
简单教程 = 简单教程,简单编程
简单教程 是一个关于技术和学习的地方
现在注册
已注册用户请 登入
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.