Go 类型转换工具包strconv包的用法

来自:网络
时间:2024-08-28
阅读:

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
}

到此这篇关于Go 类型转换工具包strconv包的用法的文章就介绍到这了,更多相关Go strconv包内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! 

返回顶部
顶部