其他分享
首页 > 其他分享> > 3.基本数据类型和string的转换

3.基本数据类型和string的转换

作者:互联网

1. 介绍

在程序开发中,我们经常将基本数据类型转成string,或者将string转成基本数据类型

2. 基本数据类型转string类型

1)fmt.Sprintf("%参数",表达式)

函数的介绍:

func Sprintf

func Sprintf(format string, a ...interface{}) string

Sprintf 根据format参数生成格式化的字符串并返回该字符串

参数需要和表达式的数据类型相匹配

fmt.Sprintf()...  会返回转换后的字符串

2)方式2: 使用strconv包的函数

package main
import (
	"fmt"
	_ "unsafe"
	"strconv"
)

func main() {
	// 1. 基本数据类型转string
	var num1 int = 99
	var num2 float64 = 23.456
	var b bool = true
	// var mychar byte = 'h'
	var str string  // 空的str

	// 方式1: fmt.Sprintf
	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=%q\n",str,str)

	// 方式2: 使用 stronv包的函数
	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=%q\n",str,str)

	str = strconv.FormatFloat(num4,'f',10,64)
	fmt.Printf("str type %T str=%q\n",str,str)

	str = strconv.FormatBool(b2)
	fmt.Printf("str type %T str=%q\n",str,str)
}

3. string类型转基本数据类型

1)使用strconv包的函数

package main
import (
	"fmt"
	"strconv"
)

func main() {
	var str string = "true"
	var b bool

	// b, _ = strconv.ParseBool(str)
	// 说明
	// 1. strconv.ParseBool(str)  函数会返回两个值(value bool,err error)
	// 2. 因为我只想获取到 value  bool,不想获取 err  所以使用 _ 忽略 error
	b , _ = strconv.ParseBool(str)
	fmt.Printf("b type %T b=%v",b,b)

	var str2 string = "123450"
	var n1 int64
	n1, _ = strconv.ParseInt(str2,10,0)
	var n2 int = int(n1)
	fmt.Printf("n1 type %T  n1=%v\n",n1,n1)
	fmt.Printf("n1 type %T  n1=%v\n",n2,n2)

	var str3 string = "123.456"
	var f1 float64
	f1, _ = strconv.ParseFloat(str3,64)
	fmt.Printf("f1 type %T  f1=%v\n",f1,f1)

	// 说明: 返回的是int64或者float64,所以希望得到int32,float32需要进行一次显示转换
}

说明: 返回的是int64或者float64,所以希望得到int32,float32需要进行一次显示转换

注意事项:

        将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如我们可以把"123" 转成一个整数,但是不能把"hello" 转成一个整数,如果这样做,Golang不会报错,而是将其转为0,其它数据类型也是一样的道理,float --> 0  bool  --> false  即默认值

标签:转换,string,strconv,fmt,数据类型,str,Printf,var
来源: https://blog.csdn.net/weixin_43893483/article/details/118877387