📌  相关文章
📜  如何在 Golang 中将字符串转换为整数类型?(1)

📅  最后修改于: 2023-12-03 15:08:37.232000             🧑  作者: Mango

如何在 Golang 中将字符串转换为整数类型?

在 Golang 中,有许多字符串转换为整数类型的方法,包括使用 strconv 包和 fmt 包。

使用 strconv 包
strconv.Atoi() 函数

strconv.Atoi() 函数可以将字符串转换为整数类型,其函数原型如下:

func Atoi(s string) (int, error)

该函数接收一个字符串参数 s,并返回转换后的整数类型值和一个 error 类型的错误信息(如果有的话)。

下面是一个例子:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "123"
    if num, err := strconv.Atoi(str); err == nil {
        fmt.Printf("%d\n", num)
    } else {
        fmt.Println(err)
    }
}

输出:

123
strconv.ParseInt() 函数

strconv.ParseInt() 函数可以将字符串转换为 int64 类型的整数,其函数原型如下:

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

该函数接收三个参数:需要转换的字符串 s,转换进制 base,和转换的结果类型 bitSize。返回转换后的 int64 类型整数值和一个 error 类型的错误信息(如果有的话)。

下面是一个例子:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "101101"
    if num, err := strconv.ParseInt(str, 2, 64); err == nil {
        fmt.Printf("%d\n", num)
    } else {
        fmt.Println(err)
    }
}

输出:

45

注:

  • 在这个例子中,101101 的二进制转换为十进制等于 45,如果您使用其他进制转换,请相应修改进制参数 base
  • bitSize 参数的取值范围为 0、8、16、32 和 64,分别表示返回值的类型为 uint、int8、int16、int32 和 int64。
使用 fmt 包

fmt 包也提供了一种将字符串转换为整数类型的方法,即使用 fmt.Sscanf() 函数,其函数原型如下:

func Sscanf(str string, format string, a ...interface{}) (n int, err error)

该函数接收两个参数:需要转换的字符串 str 和格式化字符串 format,并将结果存储到 a 参数中,返回成功处理的参数个数和一个 error 类型的错误信息(如果有的话)。

下面是一个例子:

package main

import (
    "fmt"
)

func main() {
    str := "567"
    var num int
    _, err := fmt.Sscanf(str, "%d", &num)
    if err == nil {
        fmt.Printf("%d\n", num)
    } else {
        fmt.Println(err)
    }
}

输出:

567

注:

  • 在这个例子中,格式化字符串 %d 表示需要转换的类型为十进制整数。
  • 格式化字符串中还有其他的类型转换符号,包括 %x(十六进制)、%o(八进制)、%b(二进制)等。

以上就是在 Golang 中将字符串转换为整数类型的几种方法,根据你的具体需要选择适合你当前需求的方法即可。