Go 一个类型转换工具包strconv包

Go 语言的 strconv 包提供了用于基本数据类型之间转换的函数,包括字符串到其他基本类型的转换,以及其他基本类型到字符串的转换。

字符串转换为基本数据类型

  • strconv.Atoi:将字符串转换为 int
  • strconv.ParseBool:将字符串转换为 bool
  • strconv.ParseFloat:将字符串转换为 float64
  • strconv.ParseInt:将字符串转换为 int64,可以指定进制
  • strconv.ParseUint:将字符串转换为 uint64,可以指定进制
package main

import (
	"fmt"
	"log"
	"strconv"
)

func main() {
	//字符串转换为基本数据类型
	//----------------------------------- strconv.Atoi - 将字符串转换为 int。
	intStr := "123"
	intVal, err := strconv.Atoi(intStr)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%v,%T\n", intVal, intVal)
	fmt.Println(intVal) // 输出: 123

	//----------------------------------- strconv.ParseBool - 将字符串转换为 bool。
	boolStr := "true"
	boolVal, err := strconv.ParseBool(boolStr)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%v,%T\n", boolVal, boolVal)
	fmt.Println(boolVal) // 输出: true

	//----------------------------------- strconv.ParseFloat - 将字符串转换为 float64。
	floatStr := "123.45"
	floatVal, err := strconv.ParseFloat(floatStr, 64)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%v,%T\n", floatVal, floatVal)
	fmt.Println(floatVal) // 输出: 123.45

	//----------------------------------- strconv.ParseInt - 将字符串转换为 int64,可以指定进制。
	intStrParseInt := "123" // 默认为10进制
	intValParseInt, err := strconv.ParseInt(intStrParseInt, 10, 64)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%v,%T\n", intValParseInt, intValParseInt)
	fmt.Println(intValParseInt) // 输出: 123

	//----------------------------------- 2进制
	binStr := "11010001"
	var intVal2, err2 = strconv.ParseInt(binStr, 2, 64)
	if err2 != nil {
		log.Fatal(err2)
	}
	fmt.Printf("%v,%T\n", intVal2, intVal2)
	fmt.Println(intVal2) // 输出: 209

	//-----------------------------------strconv.ParseUint - 将字符串转换为 uint64,可以指定进制。
	uintStr := "123"
	uintVal, err := strconv.ParseUint(uintStr, 10, 64)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%v,%T\n", uintVal, uintVal)
	fmt.Println(uintVal) // 输出: 123
}

 

基本数据类型转换为字符串

  • strconv.Itoa:将 int 转换为字符串
  • strconv.FormatBool:将 bool 转换为字符串
  • strconv.FormatFloat:将 float64 转换为字符串,可以指定格式化选项
  • strconv.FormatInt:将 int64 转换为字符串,可以指定进制
  • strconv.FormatUint:将 uint64 转换为字符串,可以指定进制
package main

import (
	"fmt"
	"strconv"
)

func main() {
	//基本数据类型转换为字符串
	//-----------------------------------strconv.Itoa - 将 int 转换为字符串。
	intVal := 123
	intStr := strconv.Itoa(intVal)
	fmt.Printf("%v,%T\n", intStr, intStr)
	fmt.Println(intStr) // 输出: 123

	//strconv.FormatBool - 将 bool 转换为字符串。
	boolVal := true
	boolStr := strconv.FormatBool(boolVal)
	fmt.Printf("%v,%T\n", boolStr, boolStr)
	fmt.Println(boolStr) // 输出: true

	//-----------------------------------strconv.FormatFloat - 将 float64 转换为字符串,可以指定格式化选项。
	floatVal := 123.45
	floatStr := strconv.FormatFloat(floatVal, 'f', 2, 64)
	fmt.Printf("%v,%T\n", floatStr, floatStr)
	fmt.Println(floatStr) // 输出: 123.45

	//-----------------------------------strconv.FormatInt - 将 int64 转换为字符串,可以指定进制。
	intVal64 := int64(123)
	intStr64 := strconv.FormatInt(intVal64, 10) // 10进制
	fmt.Printf("%v,%T\n", intStr64, intStr64)
	fmt.Println(intStr64) // 输出: 123

	//----------------------------------- 2进制
	intStr2 := strconv.FormatInt(intVal64, 2)
	fmt.Printf("%v,%T\n", intStr2, intStr2)
	fmt.Println(intStr) // 输出: 1111011

	//-----------------------------------strconv.FormatUint - 将 uint64 转换为字符串,可以指定进制。
	uintVal := uint64(123)
	uintStr := strconv.FormatUint(uintVal, 10) // 10进制
	fmt.Printf("%v,%T\n", uintStr, uintStr)
	fmt.Println(uintStr) // 输出: 123

	//----------------------------------- 16进制
	uintStr = strconv.FormatUint(uintVal, 16)
	fmt.Printf("%v,%T\n", uintStr, uintStr)
	fmt.Println(uintStr) // 输出: 7b
}

 

 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值