将其他值转换为string 一般常用fmt.Sprintf(格式,转换的值)
// 使用fmt.Sprintf 转换所有的类型为string 使用 这是第一种
// 注意在sprintf使用中需要注意转换的格式 int为%d float为%f bool为%t byte为%c
var i int =
var f float64 = 12.456
var t bool = true
var b byte = 'a'
var strs string
strs = fmt.Sprintf("%d",i)
fmt.Println(strs)
fmt.Printf("str type %T ,strs=%v \n",strs,strs)
strs = fmt.Sprintf("%f",f)
fmt.Println(strs)
fmt.Printf("str type %T ,strs=%v \n",strs,strs)
strs = fmt.Sprintf("%t",t)
fmt.Println(strs)
fmt.Printf("str type %T ,strs=%v \n",strs,strs)
strs = fmt.Sprintf("%c",b)
fmt.Println(strs)
fmt.Printf("str type %T ,strs=%v \n",strs,strs)显示
str type string ,strs=
12.456000
str type string ,strs=12.456000
true
str type string ,strs=true
a
str type string ,strs=a
第二种 有局限性 只能单一转换 看源码可知
strconv.Itoa() 源码 只能传递int参数
// Itoa is equivalent to FormatInt(int64(i), 10).
func Itoa(i int) string {
return FormatInt(int64(i), )
}
var xxxx int =
numss := strconv.Itoa(xxxx)
fmt.Println(numss)
fmt.Printf("\n转换前是 %T, 经过strconv.Itoa转换为 %T, 值为%v",xxxx,numss,numss)
显示为
转换前是 int, 经过strconv.Itoa转换为 string, 值为5000
至于string 转其他类型操作如下 前提是string能转换为其他基本类型 string "123x" 不能转 为 int 123x 强转则为0 但是类型会变为int
相当于没转成功,相当于给你一个int的默认值和变量名 不管转换的变量之前有没有声明
而其他类型转string不需要担心
第一种 还是strconv.Atoi() 看源码也能得知只能传递string类型 返回int类型 局限性很大 并且只能将整数字符串转换 入股掺杂一些字母之类的会错误
var vvvv string = ""
// 只能整数的字符串转换 不能掺杂其他不适整数的字符
nums,_ := strconv.Atoi(vvvv)
fmt.Println(nums)
fmt.Printf("\n转换前是 %T, 经过strconv.Atoi转换为 %T, 值为%v",vvvv,nums,nums)
显示
转换前是 string, 经过strconv.Atoi转换为 int, 值为123
第二种 还是strconv 包的函数方法
string转int
// string 类型转换为 其他类型
var str string = ""
# strconv.parseint 传入转换的字符串 返回int类型和error
ing,_ := strconv.ParseInt(str,,)
fmt.Println(ing)
fmt.Printf("int type %T %v\n",ing,ing)
# 如果对返回int64位不想要int64的 可以进行一个强制转换为int32
ing = int32(ing) # 注意只有同类型才能转换
同理 下面通过strconv.Parsexxx的也可以通过这个转换为同类型的其他格式
但是需要考虑 范围 比如int64转int32 如果int64返回的值很大,那么强转会出现值不对
显示
int type int64
如果字符串中含有其他 比如字母 则显示
var str string = "123z" // 增加一个z ing,_ := strconv.ParseInt(str,,)
fmt.Println(ing)
fmt.Printf("int type %T %v\n",ing,ing)
# 显示 int type int64
字符串转为bool类型
var str1 string = "true" b , _ := strconv.ParseBool(str1)
fmt.Println(b)
fmt.Printf("%t",b)
显示
true
true
但有个局限,只能字符串是"true""是才会转换为bool = true类型
其他 看我上面的红字和绿字 因为转换不成功所以都是一个bool默认值 false
比如
var str1 string = "truez" b , _ := strconv.ParseBool(str1)
fmt.Println(b)
fmt.Printf("%t",b) 显示
string转float
var floatstr string = "123.456"
floats,_ := strconv.ParseFloat(floatstr,)
fmt.Println(floats) //返回float64 可以强转为float32 但是注意float64位的值大小,如果超过float32位 请不要转换
fmt.Printf("str类型为 %T ,值为 %v ,浮点值为 %f" ,floats,floats,floats)显示为
123.456
str类型为 float64 ,值为 123.456 ,浮点值为 123.456000