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  即默认值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值