编程 Go语言中的`strconv`包,提供了字符串与基本数据类型之间的转换函数

2024-11-19 02:02:18 +0800 CST views 788

概述

strconv 包提供了一系列辅助函数,用于在字符串类型和其他基本数据类型之间进行转换。

Atoi & Itoa

strconv 包中,最常用的函数之一是字符串和整数之间的相互转换。Atoi 用于将字符串转换为整数(string to int),Itoa 用于将整数转换为字符串(int to string)。注意,这两个函数处理的整数都是十进制的。

函数声明如下:

func Atoi(s string) (int, error)
// 当字符串格式错误时会返回 strconv.NumError

func Itoa(i int) string

ParseX 系列函数

当需要将字符串转换为其他类型的变量时,可以使用 strconv 中的 ParseX 系列函数。该系列函数包含四个函数:ParseBoolParseIntParseFloatParseUint

详细的函数说明如下:

  • func ParseBool(str string) (bool, error)

    该函数将字符串转换为布尔值。如果输入格式错误,则返回 NumError。接受的真值包括:"1", "t", "T", "TRUE", "true", "True";假值包括:"0", "f", "F", "FALSE", "false", "False"

  • func ParseInt(s string, base int, bitSize int) (i int64, err error)

    该函数将字符串转换为指定进制和位大小的整数。参数说明:

    • s:要转换的字符串。
    • base:整数的进制(2-36,0 表示自动检测,如 0x 表示 16 进制)。
    • bitSize:整数的位大小(0、8、16、32、64),如 0 表示 int 类型,64 表示 int64 类型。

    如果输入格式错误,返回 NumError

  • func ParseUint(s string, base int, bitSize int) (n uint64, err error)

    ParseUintParseInt 类似,但用于无符号整数。

  • func ParseFloat(s string, bitSize int) (float64, error)

    该函数将字符串转换为浮点数。参数说明:

    • s:要转换的字符串。
    • bitSize:浮点数的位大小,典型值为 32 和 64。

    无论 bitSize 取值如何,返回值的类型都是 float64

FormatX 系列函数

ParseX 相对应,FormatX 系列函数用于将其他类型的变量转换为字符串类型。这一系列包含以下四个函数:

  • func FormatBool(b bool) string

    将布尔值转换为字符串。

  • func FormatInt(i int64, base int) string

    将有符号整数转换为指定进制的字符串。

  • func FormatUint(i uint64, base int) string

    将无符号整数转换为指定进制的字符串。

ParseX 函数不同,从其他类型转换为字符串总会成功,因此这些函数不会返回错误。

  • func FormatFloat(f float64, fmt byte, prec, bitSize int) string

    FormatFloat 函数用于将浮点数转换为字符串。参数说明:

    • f:要转换的浮点数。
    • fmt:浮点数的格式('b', 'e', 'E', 'f', 'g', 'G')。
    • prec:浮点数的精度(取决于 fmt 的值)。
    • bitSize:浮点数的位大小(32 或 64)。

有关 FormatFloat 参数的详细介绍,请参阅 GoDoc FormatFloat


了更好的组织,使信息更加清晰,并对一些关键点进行了补充说明,帮助理解。

复制全文 生成海报 编程 Go语言 数据类型转换

推荐文章

Graphene:一个无敌的 Python 库!
2024-11-19 04:32:49 +0800 CST
12 个精选 MCP 网站推荐
2025-06-10 13:26:28 +0800 CST
前端项目中图片的使用规范
2024-11-19 09:30:04 +0800 CST
Vue3中如何进行错误处理?
2024-11-18 05:17:47 +0800 CST
mysql时间对比
2024-11-18 14:35:19 +0800 CST
【SQL注入】关于GORM的SQL注入问题
2024-11-19 06:54:57 +0800 CST
Go语言中的`Ring`循环链表结构
2024-11-19 00:00:46 +0800 CST
pin.gl是基于WebRTC的屏幕共享工具
2024-11-19 06:38:05 +0800 CST
浏览器自动播放策略
2024-11-19 08:54:41 +0800 CST
20个超实用的CSS动画库
2024-11-18 07:23:12 +0800 CST
如何在Vue 3中使用Ref访问DOM元素
2024-11-17 04:22:38 +0800 CST
WebSocket在消息推送中的应用代码
2024-11-18 21:46:05 +0800 CST
PHP如何进行MySQL数据备份?
2024-11-18 20:40:25 +0800 CST
PostgreSQL日常运维命令总结分享
2024-11-18 06:58:22 +0800 CST
Mysql允许外网访问详细流程
2024-11-17 05:03:26 +0800 CST
Web浏览器的定时器问题思考
2024-11-18 22:19:55 +0800 CST
PHP中获取某个月份的天数
2024-11-18 11:28:47 +0800 CST
前端代码规范 - Commit 提交规范
2024-11-18 10:18:08 +0800 CST
Vue3中的v-slot指令有什么改变?
2024-11-18 07:32:50 +0800 CST
如何将TypeScript与Vue3结合使用
2024-11-19 01:47:20 +0800 CST
Boost.Asio: 一个美轮美奂的C++库
2024-11-18 23:09:42 +0800 CST
html折叠登陆表单
2024-11-18 19:51:14 +0800 CST
10个几乎无人使用的罕见HTML标签
2024-11-18 21:44:46 +0800 CST
使用Python提取图片中的GPS信息
2024-11-18 13:46:22 +0800 CST
程序员茄子在线接单