Golang如何使用strconv进行类型转换

答案:strconv包提供高效安全的字符串与基本类型转换。常用Atoi/Itoa、ParseFloat/FormatFloat、ParseBool/FormatBool处理整数、浮点数、布尔值转换,需注意检查Parse系列返回的error,建议预处理空格。

golang如何使用strconv进行类型转换

在Go语言中,strconv 包是处理基本数据类型与字符串之间转换的核心工具。它比类型断言或 fmt.Sprintf 更高效、更安全,特别适合将字符串转为数值类型或反过来。下面介绍常用方法和使用场景。

字符串与整数之间的转换

将字符串转为整数使用 strconv.Atoi,这是最常见的方式。

strconv.Atoi 是 strconv.ParseInt(s, 10, 0) 的简写,适用于十进制整数解析。

示例:

str := "123"num, err := strconv.Atoi(str)if err != nil {    log.Fatal("转换失败:", err)}// num 现在是 int 类型的 123

如果要控制进制或位大小,使用 strconv.ParseInt

立即学习“go语言免费学习笔记(深入)”;

第二个参数是进制(2-36),设为 10 表示十进制 第三个参数是目标类型的位宽(0、8、16、32、64)

num, _ := strconv.ParseInt("1000", 10, 64) // 返回 int64

整数转字符串用 strconv.Itoa,它是 strconv.FormatInt(int64(i), 10) 的便捷封装。

i := 456str := strconv.Itoa(i) // str 为 "456"

字符串与浮点数转换

将字符串转为浮点数使用 strconv.ParseFloat

第二个参数表示精度(32 或 64),决定返回 float32 还是 float64

f, err := strconv.ParseFloat("3.1415", 64)if err != nil {    log.Fatal(err)}// f 是 float64 类型

浮点数转字符串使用 strconv.FormatFloat,可指定格式和精度:

f := 3.1415926str := strconv.FormatFloat(f, 'f', 2, 64) // 保留两位小数,输出 "3.14"

第二个参数是格式码:
‘f’ 表示普通小数,’e’ 科学计数法,’g’ 自动选择

布尔值转换

字符串转布尔值使用 strconv.ParseBool

只接受 “true”、”false”(不区分大小写) 其他值会返回错误

b, err := strconv.ParseBool("True")  // trueb2, err := strconv.ParseBool("1")   // trueb3, err := strconv.ParseBool("0")   // false

布尔转字符串用 strconv.FormatBool

b := truestr := strconv.FormatBool(b) // 返回 "true"

注意事项和最佳实践

所有 Parse 系列函数都返回 (value, error),务必检查 error 避免程序崩溃。

Format 和 Itoa 系列函数不会出错,可直接使用。

当处理用户输入或外部数据时,建议先 trim 空格:

import "strings"str = strings.TrimSpace(str)num, err := strconv.Atoi(str)

基本上就这些。掌握 Atoi / Itoa、ParseFloat / FormatFloat、ParseBool / FormatBool 这几组函数,就能应对大多数字符串与基本类型的转换需求。安全、高效、清晰。

以上就是Golang如何使用strconv进行类型转换的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月16日 06:36:36
下一篇 2025年12月16日 06:36:56

相关推荐

发表回复

登录后才能评论
关注微信