Go语言从入门到精通 - 【精华篇】strconv包详解

本节核心内容

  • 介绍 Go语言的strconv包
  • 介绍 开发中几种常用类型的转换方法

本小节视频教程和代码:百度网盘

可先下载视频和源码到本地,边看视频边结合源码理解后续内容,边学边练。

strconv包简介

在Go语言中,我们往往需要对一些常用的数据类型进行转换,如string,int,int64 ,float等数据类型之间的转换,基于此Go语言为我们提供了一个名为strconv的包来为我们提供这些类型的转换方法。

下面将通过几个简单的示例给大家分享Go语言常用类型如string,int,int64 ,float之间的类型转换方法

(1)int转string

s := strconv.Itoa(i)  
//等价于s := strconv.FormatInt(int64(i), 10)

(2)int64转string

i := int64(123)
s := strconv.FormatInt(i, 10)

第二个参数为基数,可选2~36

注:对于无符号整形,可以使用FormatUint(i uint64, base int)

(3)string转int

i, err := strconv.Atoi(s)

(4)string转int64

i, err := strconv.ParseInt(s, 10, 64)

第二个参数为基数(2~36),第三个参数位大小表示期望转换的结果类型,其值可以为0, 8, 16, 32和64,分别对应 int, int8, int16, int32和int64

(5)float相关

float转string:

v := 3.1415926535
s1 := strconv.FormatFloat(v, \'E\', -1, 32)//float32s2 := strconv.FormatFloat(v, \'E\', -1, 64)//float64

string转float:

s := "3.1415926535"
v1, err := strconv.ParseFloat(v, 32)
v2, err := strconv.ParseFloat(v, 64)

PS:go语言string、int、int64互相转换

        //string到int
        int,_:=strconv.Atoi("123")
        fmt.Printf("type:%T;值:%v",int,int)
        fmt.Println()
        //string到int64
        int64, _ := strconv.ParseInt("456", 10, 64)
        fmt.Printf("type:%T;值:%v",int64,int64)
        fmt.Println()
        //int到string
        string:=strconv.Itoa(int)
        fmt.Printf("type:%T;值:%v",string,string)
        fmt.Println()
        //int64到string
        str10:=strconv.FormatInt(160,10)
        fmt.Printf("type:%T;值:%v",str10,str10)
        fmt.Println()
        //string到float32(float64)
        float,_ := strconv.ParseFloat("165.34",32/64)
        fmt.Printf("type:%T;值:%v",float,float)
        fmt.Println()
        //float到string
        fts32 := strconv.FormatFloat(3.1415926, \'e\', -1, 32)
        fts64 := strconv.FormatFloat(3.1415926, \'E\', -1, 64)
        fmt.Printf("type:%T;值:%v",fts32,fts32)
        fmt.Println()
        fmt.Printf("type:%T;值:%v",fts64,fts64)
 

小结

本小节主要讲解了Go语言中自带的strconv包有什么作用,通过代码演练的方式讲解了该包的几种常用方法。