【go笔记】标准库-strconv

简介: 【go笔记】标准库-strconv

前言

标准库strconv提供了字符串类型与其他常用数据类型之间的转换。

  • strconv.FormatX()用于X类型转字符串,如strconv.FormatFloat()用于浮点型转字符串。
  • strconv.ParseX()用于字符串转X类型,如strconv.ParseFloat()用于字符串转浮点型。
  • 对于整型,常用strconv.Itoa()整型转字符串和strconv.Atoi()字符串转整型,当然也可以用FormatInt()ParseInt()

函数原型

// 整型转字符串
func Itoa(i int) string
func FormatInt(i int64, base int) string
// 字符串转整型
func Atoi(s string) (int, error)
func ParseInt(s string, base int, bitSize int) (i int64, err error)
// 浮点型转字符串
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
// 字符串转浮点型
func ParseFloat(s string, bitSize int) (float64, error)
// 布尔型转字符串
func FormatBool(b bool) string
// 字符串转布尔型
func ParseBool(str string) (bool, error)
// 复数转字符串
func FormatComplex(c complex128, fmt byte, prec, bitSize int) string
// 字符串转复数
func ParseComplex(s string, bitSize int) (complex128, error)

具体函数说明请点击文末“参考资料”的官方文档链接。

示例代码

package main
import (
  "fmt"
  "strconv"
)
func main() {
  // 整型转字符串
  var a int = 123
  // 输出:123, 123, string
  fmt.Printf("%d, %v, %T \n", a, strconv.Itoa(a), strconv.Itoa(a))
  // 浮点型转字符串
  var b float64 = 3.141592653589793
  // 输出:3.141593, 3.14159265, string
  fmt.Printf("%f, %v, %T \n", b, strconv.FormatFloat(b, 'f', 8, 64), strconv.FormatFloat(b,'f', 8, 64))
  
  // 字符串转整型
  var c string = "56789"
  if c2,err := strconv.Atoi(c); err == nil {
    // 输出:string, 56789, int
    fmt.Printf("%T, %v, %T \n",c, c2, c2)
  }
  // 字符串转浮点型
  var d string = "123.456789"
  if d2, err := strconv.ParseFloat(d, 64); err == nil {
    // 输出:string, 123.456789, float64
    fmt.Printf("%T, %v, %T \n", d, d2, d2)
  }
}

参考资料

相关文章
|
6月前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
1170 103
|
7月前
|
Go 开发者
go-carbon v2.6.0 重大版本更新,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持
123 3
|
8月前
|
网络协议 Linux Go
用 Go 基于 epoll 实现一个最小化的IO库
Go 语言社区中存在多个异步网络框架,如 evio、nbio、gnet 和 netpoll 等。这些框架旨在解决标准库 netpoll 的低效问题,如一个连接占用一个 goroutine 导致的资源浪费。easyio 是一个最小化的 IO 框架,核心代码不超过 500 行,仅实现 Linux 下的 epoll 和 TCP 协议。它通过 Worker Pool、Buffer 等优化提高了性能,并提供了简单的事件处理机制。
101 0
|
11月前
|
JSON Go 开发者
go-carbon v2.5.0 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。
209 4
|
11月前
|
存储 Cloud Native Shell
go库介绍:Golang中的Viper库
Viper 是 Golang 中的一个强大配置管理库,支持环境变量、命令行参数、远程配置等多种配置来源。本文详细介绍了 Viper 的核心特点、应用场景及使用方法,并通过示例展示了其强大功能。无论是简单的 CLI 工具还是复杂的分布式系统,Viper 都能提供优雅的配置管理方案。
269 6
|
11月前
|
JSON 安全 网络协议
go语言使用内置函数和标准库
【10月更文挑战第18天】
144 3
|
11月前
|
存储 Go PHP
Go语言中的加解密利器:go-crypto库全解析
在软件开发中,数据安全和隐私保护至关重要。`go-crypto` 是一个专为 Golang 设计的加密解密工具库,支持 AES 和 RSA 等加密算法,帮助开发者轻松实现数据的加密和解密,保障数据传输和存储的安全性。本文将详细介绍 `go-crypto` 的安装、特性及应用实例。
527 0
|
8月前
|
编译器 Go
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
|
8月前
|
运维 监控 算法
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
|
2月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。

热门文章

最新文章