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

 更新时间:2024年05月15日 10:04:30   作者:比猪聪明  
Go 语言的 strconv 包提供了用于基本数据类型之间转换的函数,本文主要介绍了Go 类型转换工具包strconv包的用法,具有一定的参考价值,感兴趣的可以了解一下

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

相关文章

  • 使用Go中的Web3库进行区块链开发的案例

    使用Go中的Web3库进行区块链开发的案例

    区块链作为一种分布式账本技术,在近年来取得了巨大的发展,而Golang作为一种高效、并发性强的编程语言,被广泛用于区块链开发中,本文将介绍如何使用Golang中的Web3库进行区块链开发,并提供一些实际案例,需要的朋友可以参考下
    2023-10-10
  • Golang中interface{}转为数组的操作

    Golang中interface{}转为数组的操作

    这篇文章主要介绍了Golang中interface{}转为数组的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Go gRPC服务端流式RPC教程示例

    Go gRPC服务端流式RPC教程示例

    这篇文章主要为大家介绍了Go gRPC服务端流式RPC教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Golang实现组合模式和装饰模式实例详解

    Golang实现组合模式和装饰模式实例详解

    这篇文章主要介绍了Golang实现组合模式和装饰模式,本文介绍组合模式和装饰模式,golang实现两种模式有共同之处,但在具体应用场景有差异。通过对比两个模式,可以加深理解,需要的朋友可以参考下
    2022-11-11
  • Go iota关键字与枚举类型实现原理

    Go iota关键字与枚举类型实现原理

    这篇文章主要介绍了Go iota关键字与枚举类型实现原理,iota是go语言的常量计数器,只能在常量的表达式中使用,更多相关内容需要的小伙伴可以参考一下
    2022-07-07
  • Apache IoTDB开发系统之Go原生接口方法

    Apache IoTDB开发系统之Go原生接口方法

    这篇文章主要为大家介绍了 Apache IoTDB开发系统之Go原生接口方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • go 读取BMP文件头二进制读取方式

    go 读取BMP文件头二进制读取方式

    这篇文章主要介绍了go 读取BMP文件头二进制读取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Go语言中结构体方法副本传参与指针传参的区别介绍

    Go语言中结构体方法副本传参与指针传参的区别介绍

    这篇文章主要给大家介绍了关于Go语言中结构体方法副本传参与指针传参的区别的相关资料,文中先对GO语言结构体方法跟结构体指针方法的区别进行了一些简单的介绍,来帮助大家理解学习,需要的朋友可以参考下。
    2017-12-12
  • golang通过cgo调用C++库源码示例

    golang通过cgo调用C++库源码示例

    这篇文章主要给大家介绍了关于golang通过cgo调用C++库的相关资料,CGO是GO语言里面的一个特性,CGO属于GOLANG的高级用法,主要是通过使用GOLANG调用CLANG实现的程序库,需要的朋友可以参考下
    2024-02-02
  • Go反射中type和kind区别比较详析

    Go反射中type和kind区别比较详析

    这篇文章主要给大家介绍了关于Go反射中type和kind区别比较的相关资料,Type是接口类型,Value是Struct类型,Type是类型描述,而Value是具体的值,需要的朋友可以参考下
    2023-10-10

最新评论