【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)
  }
}

参考资料

相关文章
|
7月前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
1382 103
|
8月前
|
Go 开发者
go-carbon v2.6.0 重大版本更新,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持
190 3
|
9月前
|
网络协议 Linux Go
用 Go 基于 epoll 实现一个最小化的IO库
Go 语言社区中存在多个异步网络框架,如 evio、nbio、gnet 和 netpoll 等。这些框架旨在解决标准库 netpoll 的低效问题,如一个连接占用一个 goroutine 导致的资源浪费。easyio 是一个最小化的 IO 框架,核心代码不超过 500 行,仅实现 Linux 下的 epoll 和 TCP 协议。它通过 Worker Pool、Buffer 等优化提高了性能,并提供了简单的事件处理机制。
139 0
|
JSON Go 开发者
go-carbon v2.5.0 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。
262 4
|
存储 Cloud Native Shell
go库介绍:Golang中的Viper库
Viper 是 Golang 中的一个强大配置管理库,支持环境变量、命令行参数、远程配置等多种配置来源。本文详细介绍了 Viper 的核心特点、应用场景及使用方法,并通过示例展示了其强大功能。无论是简单的 CLI 工具还是复杂的分布式系统,Viper 都能提供优雅的配置管理方案。
334 6
|
JSON 安全 网络协议
go语言使用内置函数和标准库
【10月更文挑战第18天】
173 3
|
存储 Go PHP
Go语言中的加解密利器:go-crypto库全解析
在软件开发中,数据安全和隐私保护至关重要。`go-crypto` 是一个专为 Golang 设计的加密解密工具库,支持 AES 和 RSA 等加密算法,帮助开发者轻松实现数据的加密和解密,保障数据传输和存储的安全性。本文将详细介绍 `go-crypto` 的安装、特性及应用实例。
602 0
|
1月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
153 1
|
3月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
286 1
|
3月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
359 0