golang的断言使用
golang断言的使用
golang断言是interface{}转换成具体类型使用,使用方法有两种:
1 直接接收转换后的类型
- 1 正确赋值
var v interface{}
v = 1
v2:=v.(int)
fmt.Println(v2)
打印结果

- 2 将
nil的interface{}转换成int
var v interface{}
v2:=v.(int)
fmt.Println(v2)
打印会报错

- 3 将
int转换成string
var v interface{}
v = 1
v2:=v.(string)
fmt.Println(v2)
打印也会报错

2 接收转换后的类型和状态
- 1 正确赋值
var v interface{}
v = 1
v2,status:=v.(int)
fmt.Println(v2,status)
打印

- 2 将
nil的interface{}转换成int
var v interface{}
v2,status:=v.(int)
fmt.Println(v2,status)
打印不会报错

- 3 将
int转换成string
var v interface{}
v =1
v2,status:=v.(string)
fmt.Println(v2,status)
打印不会报错

3 优缺点
如果是已经知道类型并且保证有值,用第一种比较合适。如果不知道类型并且也不确定是否有值那么就只能使用第二种。并且推荐代码中使用第二种,如果只是为了比较里面的值那么推荐使用 fmt.Sprintf("%v",v2)转换成字符串比较
4 总结
断言在golang中使用还是比较频繁,所以根据自己的场景选择使用

浙公网安备 33010602011771号