🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## **1:基本介绍** 在程序开发中我们经常 将基本数据类型,转成string,或将string **方式1:** fmt.Sprintf(“%参数”,表达式) 【推荐使用】 函数介绍: ![](https://img.kancloud.cn/c4/07/c4074725cfaabaf1859e02173af97751_419x94.png) 参数需要和表达式的类型相匹配 Fmt.Sprintf() 会返回转换后的字符串 <br> ## **2:案例演示** 方式1:如下 将:float32,bool,byte,int,转换成string ``` package main import ( "fmt" ) func main(){ var num int = 99 var num1 float32 = 32.12312 var num2 bool = true var num3 byte = 'a' var str string str = fmt.Sprintf("%d",num) fmt.Printf("num type is %T num = %q\n",str,str) str = fmt.Sprintf("%f",num1) fmt.Printf("num1 type is %T num1 = %q\n",str,str) str = fmt.Sprintf("%t",num2) fmt.Printf("num2 type is %T num2 = %q\n",str,str) str = fmt.Sprintf("%c",num3) fmt.Printf("num3 type is %T num3 = %q\n",str,str) } ``` **运行结果:** ``` num type is string num = "99" num1 type is string num1 = "32.123119" num2 type is string num2 = "true" num3 type is string num3 = "a" [Finished in 0.7s] ``` <br> ## **3:string转基本数据类型(bool)如下的方法** [func FormatBool(b bool) string](https://studygolang.com/static/pkgdoc/pkg/strconv.htm#FormatBool) [func FormatInt(i int64, base int) string](https://studygolang.com/static/pkgdoc/pkg/strconv.htm#FormatInt) [func FormatUint(i uint64, base int) string](https://studygolang.com/static/pkgdoc/pkg/strconv.htm#FormatUint) [func FormatFloat(f float64, fmt byte, prec, bitSize int) string](https://studygolang.com/static/pkgdoc/pkg/strconv.htm#FormatFloat) <br> <br> ### **案例如下** #### **一:string转基本数据类型bool** ``` package main import ( "fmt" "strconv"// 导入包 ) func main(){ // string----->转基本数据类型(bool) var str string = "true" // 无法改变变量本身 var b bool // 声明变量,用于接收 b,_ = strconv.ParseBool(str) fmt.Printf("b type is %T b = %v\n",b,b) } ``` 代码说明: ``` strconv.ParseBool(str) 是有两个返回值,一个value,另一个是error b,_=strconv.ParseBool(str) 的写法是 _,是忽略error这个返回值 ``` **运行结果:** `b type is bool b = true` <br> #### **二:string转基本数据类型int** ``` package main import ( "fmt" "strconv"// 导入包 ) func main(){ var str1 = "123456" var n1 int64 n1,_ = strconv.ParseInt(str1,10,64) fmt.Printf("s type is %T s = %v\n",n1,n1) } ``` <br> <br> ##### **代码说明** ``` // 这里的ParseInt()接收三个参数,第一个是变量本身,第二个可以填0表示int,第三个是类型,32,就是int32,64就是int64 代码的10是进制参数,写10就是10进制,2就是2进制 ``` **运行结果:** `s type is int64 s = 123456` <br> <br> #### **三:string转基本数据类型float** ``` var sum = "123.123" var p float64 p,_ = strconv.ParseFloat(sum,64) fmt.Printf("sum type is %T sum = %v\n",p,p) ``` **运行结果:** `sum type is float64 sum = 123.123` 注意: 1,上面的案例中,值改变了变量,并未改变变量本身 2,按照strconv.ParseInt返回值的(32,64)来接受 例如:b,n1,n2的变量数据类型 3,第18行代码的10是进制参数,写10就是10进制,2就是2进制 <br> <br> ## **4:注意事项** 在将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如我们可以把"123", 转成一个整数,但是不能把hello" 转成一个整数,如果这样做,Golang 直接将其转成0 ``` var ret = "hallo" var t int64 t,_ = strconv.ParseInt(ret,10,64) fmt.Printf("t type is %T t = %v\n",t,t) ``` **运行结果** `t type is int64 t = 0`