当前位置: 代码网 > it编程>前端脚本>Golang > Go 类型转换工具包strconv包的用法

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

2024年06月12日 Golang 我要评论
go 语言的strconv包提供了用于基本数据类型之间转换的函数,包括字符串到其他基本类型的转换,以及其他基本类型到字符串的转换。字符串转换为基本数据类型strconv.atoi:将字符串转换为int

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包内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com