由于go是强类型语言,因此在你用别人写的处理函数的时候,变量类型的准确性还是很重要的,今天写东西的时候碰到go类型转换的问题,总结一下吧,没有用类型断言,直接上代码,只有几种,后面有的话再补上:
第一种: 接口类型转字符串类型
var inter interface{}
inter = "hello"
str := inter.(string)
fmt.Println(reflect.TypeOf(str))
编译运行结果是这样的:
第二种:接口类型转int型
var inter interface{}
inter = 1
str := inter.(int)
fmt.Println(reflect.TypeOf(str))
编译运行结果如下:
第三种:int类型转字符串:
暴力方法:str := “1”,意思你在知道准确定数据的时候就这样用;
不过大多都是不知道的准确数据的情况
func data() int {
number := 1
return number
}
func main(){
num := data()
str := string(num)
fmt.Println(reflect.TypeOf(str))
}
写了一个data函数模拟不知道数据的情况,结果是这样的:
今天我遇到的问题是从中间件get到的数据是interface{}类型的,然后我想直接把它转化为字符串型拼接到url里面,结果他会报错interface{} is int,can not convert
大概就是这个意思,我的做法就是先把他转为Int型,然后在把它转化为string型!