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

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

基本类型转string类型


1、 fmt.Sprintf("%参数", 表达式) 【灵活】
函数介绍:
func Sprintf(format string, a …interface{}) string
// Sprintf根据format参数生成格式化的字符串并返回该字符串
参数需要和表达式的数据类型想匹配
fmt.Sprintf()… 会返回转换后的字符串


2、使用strconv 包的函数
func FormatBool(b bool) string
func FormatFloat64(f float64,fmt byte,prec,bitSize int) string
func FormatInt(i int64,base int) string
func FormatUnit(i unit64,base int) string

  • 案例演示
package main

import (
	"fmt"
	"strconv"
)

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

	// 使用第一种方式来转换 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)

	// 第二种方式	strconv 函数
	var num3 int = 99
	var num4 float64 = 23.456
	var b2 bool = true
	var num5 int64 = 4567

	str = strconv.FormatInt(int64(num3), 10)
	fmt.Printf("str type %T str=%q\n", str, str)

	// strconv.AppendFloat(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)

	str = strconv.Itoa(int(num5))
	fmt.Printf("str type %T str=%q\n", str, str)

}

string 类型转基本类型
使用时 strconv 包的函数
func ParseBool(str string)(value bool, err error)
func ParseFloat(s string, bitSize int)(i int64, err error)
func ParseInt(s string, base int, bitSize)(i int64, err error)
func ParseUnint(s string, b int, bitSize int)(n unit64 err error)

  • 案例演示
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 所以我使用——忽略
	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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值