有时候我们拿到一些 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) // 打印数据 }
目前尚无回复