首页> 基础笔记 >GoLang基础学习 >基础知识 基础知识

Golang基本数据类型和 string的转换

作者:小萝卜 2023-03-29 浏览 321

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

基本介绍

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

基本类型转 string类型

方式1:fmt.Sprintf("%参数",表达式)【个人习惯这个,灵活】

函数的介绍:

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

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

案例演示

	var num1 int = 99
	var num2 float64 = 23.456
	var b bool = true
	var myChar byte = 'h'
	var str string //空的str

	//使用第一种方式来转换 fmt.Sprintf方法

	str = fmt.Sprintf("%d", num1)
	fmt.Printf("str type %T str=%q\n", str, str)

	str = fmt.Sprintf("%f", num2)
	fmt.Printf("str type %T str=%q\n", str, str)

	str = fmt.Sprintf("%t", b)
	fmt.Printf("str type %T str=%q\n", str, str)

	str = fmt.Sprintf("%c", myChar)
	fmt.Printf("str type %T str=%q\n", str, str)
方式 2:使用 strconv包的函数
	//第二种方式 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=%q\n", str, str)
补充说明
	// strconv.FormatFloat(num4, 'f', 10, 64)
	// 说明: 'f' 格式 10:表示小数位保留10位 64 :表示这个小数是float64
	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)


string类型转基本数据类型

	var str string = "true"
	var b bool
	// b, _ = strconv.ParseBool(str)
	// 说明
	// 1. strconv.ParseBool(str) 函数会返回两个值 (value bool, err error)
	// 2. 因为我只想获取到 value bool ,不想获取 err 所以我使用_忽略
	b , _ = strconv.ParseBool(str)
	fmt.Printf("b type %T  b=%v\n", b, b)
	
	var str2 string = "1234590"
	var n1 int64
	var n2 int
	n1, _ = strconv.ParseInt(str2, 10, 64)
	n2 = int(n1)
	fmt.Printf("n1 type %T  n1=%v\n", n1, n1)
	fmt.Printf("n2 type %T n2=%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)


string转基本数据类型的注意事项

在将 String类型转成基本数据类型时,要确保    String类型能够转成有效的数据,比如我们可以把  "123" ,转成一个整数,但是不能把   "hello"转成一个整数,如果这样做,Golang直接将其转成    0,其它类型也是一样的道理. float => 0 bool => false

案例说明:

	//注意:
	var str4 string = "hello"
	var n3 int64 = 11
	n3, _ = strconv.ParseInt(str4, 10, 64)
	fmt.Printf("n3 type %T n3=%v\n", n3, n3)

 

 

很赞哦! (0)

文章评论

    高端网站建设