基本数据类型和string的转换
在程序开发中,我们经常需要将基本数据类型转成string类型,或者将string类型转成基本数据类型
基本数据类型转string类型
方式一:
fmt.Sprintf("%参数",式)
函数的介绍:Sprintf根据format参数生成格式化的字符串并返回该字符串
参数需要和表达式的数据类型相匹配
package main
import "fmt"
//演示基本数据类型转string类型
func main(){
var num1 int = 99
var num2 float64 = 23.456
var b bool = true
var myChar byte = 'h'
var str string //空的str
//使用方式一转换
str = fmt.Sprintf("%d",num1)
fmt.Printf("str type %T str=%v\n",str,str)
str = fmt.Sprintf("%f",num2)
fmt.Printf("str type %T str=%v\n",str,str)
str = fmt.Sprintf("%t",b)
fmt.Printf("str type %T str=%v\n",str,str)
str = fmt.Sprintf("%c",myChar)
fmt.Printf("str type %T str=%v",str,str)
}
输出
str type string str=99
str type string str=23.456000
str type string str=true
str type string str=h
方式二:
使用strconv包的函数
package main
import (
"fmt"
"strconv"
)
//演示基本数据类型转string类型
func main(){
//使用方式二转换 strconv
var num3 int = 99
var num4 float64 = 23.456
var b2 bool = true
str = strconv.FormatInt(int64(num3),10)
fmt.Printf("str type %T str=%v\n",str,str)
str = strconv.FormatFloat(num4,'f',10,64)
//说明: 'f' 格式 10 表示小数为保留10位 64 表示这个小数是float64
fmt.Printf("str type %T str=%v\n",str,str)
str = strconv.FormatBool(b2)
fmt.Printf("str type %T str=%v\n",str,str)
}
输出
str type string str=99
str type string str=23.4560000000
str type string str=true
strconv包中有一个函数Itoa
//strconv包中有一个函数Itoa
var num5 int = 4567
str = strconv.Itoa(num5)
fmt.Printf("str type %T str=%v\n",str,str)
输出
str type string str=4567
string转基本数据类型
使用strconv包的函数
package main
import (
"fmt"
"strconv"
)
//演示golang中string转基本数据类型
func main(){
var str string = "true"
var b bool
b,_ = strconv.ParseBool(str)
//strconv.ParasBoool(str)函数会返回两个值 (value bool,err error)
//因为只想获得value bool,不想获取err,所以使用_忽略
fmt.Printf("b type %T b=%v\n",b,b)
var str2 string = "1234590"
var n1 int64
n1,_ = strconv.ParseInt(str2,10,64 )
fmt.Printf("n1 type %T n1=%v\n",n1,n1)
var str3 string = "123.456"
var f1 float64
f1,_ = strconv.ParseFloat(str3,64)
fmt.Printf("f1 type %T n1=%v\n",f1,f1)
}
输出
b type bool b=true
n1 type int64 n1=1234590
f1 type float64 n1=123.456
注意事项
在将string类型转成基本数据类型时,要确保string类型能够转成有效的数据,比如我们可以吧"123"转成一个整数,但不能把"hello"转成一个整数,如果这样做,golang直接将其转成0(默认值)
var str string = "hello"
var num int64
num,_ = strconv.ParseInt(str,10,64)
fmt.Printf("num type = %T num value = %d\n",num,num)
输出
num type = int64 num value = 0