• 技术文章 >后端开发 >Golang

    golang怎么将字符串转为整型

    青灯夜游青灯夜游2023-01-05 11:44:22原创177

    转换方法:1、用Atoi(),可将字符串类型的整数转换为int类型,语法“strconv.Atoi(str)”;2、用ParseInt(),可将字符串转换为整数值,接受正负号,语法“strconv.ParseInt(str,10,64)”;3、用ParseUnit(),可将字符串转换为整数值,不接受正负号,语法“strconv.ParseUint(str,10,64)”。

    本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。

    Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换。

    strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi()、Itia()、parse系列、format系列、append系列。

    下面介绍一下将字符串转为整型的几个函数。

    Atoi()

    Atoi()函数用于将字符串类型的整数转换为int类型,函数签名如下。

    func Atoi(s string) (i int, err error)

    如果传入的字符串参数无法转换为int类型,就会返回错误。

    package main
    
    import "fmt"
    import "strconv"
    
    func main() {
       s1 := "100"
          i, err := strconv.Atoi(s1)
       if err != nil {
          fmt.Println("can't convert to int")
       } else {
          fmt.Printf("type:%T value:%#v\n", i, i) //type:int value:100
       }
    }

    1.png

    Parse系列函数

    Parse类函数用于转换字符串为给定类型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。其中ParseInt()和ParseUnit()用于字符串转整型。

    ParseInt()

    ParseInt()是将字符串转换为数字的函数

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

    返回字符串表示的整数值,接受正负号。

    ParseUnit()

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

    ParseUint类似ParseInt但不接受正负号,用于无符号整型。

    示例:

    package main
    
    import "fmt"
    import "strconv"
    
    func main() {
    	i, err1 := strconv.ParseInt("-2", 10, 64)
    	u, err2 := strconv.ParseUint("2", 10, 64)
    	if err1 != nil {
          fmt.Println("can't convert to int")
        } else {
          fmt.Printf("type:%T value:%#v\n", i, i) //type:int64 value:2
        }
    	if err2 != nil {
          fmt.Println("can't convert to int")
        } else {
          fmt.Printf("type:%T value:%#v\n", u, u) //type:uint64 value:0x2
        }
    }

    2.png

    ParseInt()和ParseUnit()函数都有两个返回值,第一个返回值是转换后的值,第二个返回值为转化失败的错误信息。

    扩展知识:go中的整型

    Go语言同时提供了有符号和无符号的整数类型,其中包括 int8、int16、int32 和 int64 四种大小截然不同的有符号整数类型,分别对应 8、16、32、64 bit(二进制位)大小的有符号整数,与此对应的是 uint8、uint16、uint32 和 uint64 四种无符号整数类型。

    此外还有两种整数类型 int 和 uint,它们分别对应特定 CPU 平台的字长(机器字大小),其中 int 表示有符号整数,应用最为广泛,uint 表示无符号整数。实际开发中由于编译器和计算机硬件的不同,int 和 uint 所能表示的整数大小会在 32bit 或 64bit 之间变化。

    大多数情况下,我们只需要 int 一种整型即可,它可以用于循环计数器(for 循环中控制循环次数的变量)、数组和切片的索引,以及任何通用目的的整型运算符,通常 int 类型的处理速度也是最快的。

    用来表示 Unicode 字符的 rune 类型和 int32 类型是等价的,通常用于表示一个 Unicode 码点。这两个名称可以互换使用。同样,byte 和 uint8 也是等价类型,byte 类型一般用于强调数值是一个原始的数据而不是一个小的整数。

    最后,还有一种无符号的整数类型 uintptr,它没有指定具体的 bit 大小但是足以容纳指针。uintptr 类型只有在底层编程时才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。

    尽管在某些特定的运行环境下 int、uint 和 uintptr 的大小可能相等,但是它们依然是不同的类型,比如 int 和 int32,虽然 int 类型的大小也可能是 32 bit,但是在需要把 int 类型当做 int32 类型使用的时候必须显示的对类型进行转换,反之亦然。

    Go语言中有符号整数采用 2 的补码形式表示,也就是最高 bit 位用来表示符号位,一个 n-bit 的有符号数的取值范围是从 -2(n-1) 到 2(n-1)-1。无符号整数的所有 bit 位都用于表示非负数,取值范围是 0 到 2n-1。例如,int8 类型整数的取值范围是从 -128 到 127,而 uint8 类型整数的取值范围是从 0 到 255。

    【相关推荐:Go视频教程编程教学

    以上就是golang怎么将字符串转为整型的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Golang go语言
    上一篇:go语言支不支持安卓开发 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • go语言中的输出方法有哪些• go语言必须有一个什么包• golang的接口有啥用• go语言为什么以包组织代码• go语言默认大端还是小端• go语言中怎么注释多行
    1/1

    PHP中文网