GO语言基本数据类型和string类型的转换
1.基本数据类型转string类型
fmt包中的Sprintf方法
格式:fmt.Sprintf(“格式控制符”, 变量名)
package main
import(
"fmt"
)
func main() {
//格式控制符为要转换的数据的类型
var a int = 123
var b float32 = 123
var c bool = true
var d string = "hello"
var e byte = 'm'
str1 := fmt.Sprintf("%d", a)
str2 := fmt.Sprintf("%f", b)
str3 := fmt.Sprintf("%t", c)
str4 := fmt.Sprintf("%s", d)
str5 := fmt.Sprintf("%c", e)
//下面进行输出
fmt.Printf("str1 = %v 类型:%T \n", str1, str1)
fmt.Printf("str2 = %v 类型:%T \n", str2, str2)
fmt.Printf("str3 = %v 类型:%T \n", str3, str3)
fmt.Printf("str4 = %v 类型:%T \n", str4, str4)
fmt.Printf("str5 = %v 类型:%T \n", str5, str5)
}
输出结果:
strconv包中的函数
strconv包中有几个函数用于基本数据类型到string类型的转换:FormatInt 、FormatUint、FormatFloat、FormatBool
package main
import(
"fmt"
"strconv"
)
func main() {
//格式控制符为要转换的数据的类型
var a int64 = 123
var b float64 = 123
var c bool = true
var d int = 123
//var e byte = 'm'
// str1 := fmt.Sprintf("%d", a)
// str2 := fmt.Sprintf("%f", b)
// str3 := fmt.Sprintf("%t", c)
// str4 := fmt.Sprintf("%s", d)
// str5 := fmt.Sprintf("%c", e)
str1 := strconv.FormatInt(a , 10) //10表示10进制,这个函数用于int64转string
//FormatFloat函数用法:strconv.FormatFloat(变量名,格式,精度,比特位)
str2 := strconv.FormatFloat(b, 'f', 7, 64)
//格式指的是进制格式,这里的'f'就是十进制格式,相应的还有'b':二进制格式; 'e'或'E':十进制指数;
//精度为7就是保留小数点后七位
//比特位为64意思是float64这种类型,相应的还有32,意为float32类型
str3 := strconv.FormatBool(c)
// str4 := strconv.FormatByte(e) !!!!这是错的!!!没有FormatByte这个函数
str4 := strconv.Itoa(d) //这个函数也有将int型转化为string的功能
//下面进行输出
fmt.Printf("str1 = %v 类型:%T \n", str1, str1)
fmt.Printf("str2 = %v 类型:%T \n", str2, str2)
fmt.Printf("str3 = %v 类型:%T \n", str3, str3)
fmt.Printf("str4 = %v 类型:%T \n", str4, str4)
}
输出结果:
2.string转基本数据类型
同样,strconv中也有将string转化为基本数据类型的函数:ParseInt、ParseUint、ParseFloat、ParseBool
package main
import(
"fmt"
"strconv"
)
func main() {
var str1 string = "123"
var str2 string = "123.123"
var str3 string = "true"
//以下的函数返回值位int64位或float64位,_表示哑元变量,用于接收函数的一个返回值
//ParseInt用法:ParseInt(变量名,进制,比特位)
a,_ := strconv.ParseInt(str1, 10, 64) // 10表示a为十进制整数,64表示a为int64
//ParseInt用法:ParseFloat(变量名,比特位)
b,_ := strconv.ParseFloat(str2, 64) //64意为float64位
//ParseBool(变量名)
c,_ := strconv.ParseBool(str3)
fmt.Printf("a = %v 类型为%T \n", a, a)
fmt.Printf("b = %v 类型为%T \n", b, b)
fmt.Printf("c = %v 类型为%T \n", c, c)
}
intf(“a = %v 类型为%T \n”, a, a)
fmt.Printf(“b = %v 类型为%T \n”, b, b)
fmt.Printf(“c = %v 类型为%T \n”, c, c)
}
输出结果:![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210202205151466.png#pic_center)