基本数据类型和string的转换

基本数据类型和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
上一篇:3.基本数据类型和string的转换


下一篇:torch.nn.CrossEntropyLoss()用法