2020.08.05
1245
Go 类型断言广泛用于interfer{}类型转为其他类型(经常出现在map类型中),另外只有initerface类型才可以进行类型断言。
Go 类型断言广泛用于interfer{}类型转为其他类型,另外只有initerface类型才可以进行类型断言。
写法为value, ok := em.(T) 如果确保em 是同类型的时候可以直接使用value:=em.(T)
em代表要判断的变量
T代表被判断的类型
value代表返回的值
ok代表是否为改类型
如果断言失败,那么ok的值将会是false,但是如果断言成功ok的值将会是true,同时value将会得到所期待的正确的值。
比如:
bizContent := make(map[string]interface{})
此map类型中,元素值可也是任意类型值。但是在使用元素值进行比较或者其他运算时,需要转为真实的类型进行操作。
比如:
returnCode, returnCodeok := ret["returnCode"].(string)
returnCode是明确知道是string类型的,所以断言为string。
另外,类型断言em必须为initerface类型才可以进行类型断言。
ps: 将整型转为数字字符串可以用 fmt.Sprintf("%d",num)