Go语言教程之边写边学:类型转换-如何在Go中将字符串转换为整数类型?
像大多数现代语言一样,Golang 包含字符串作为内置类型。让我们举个例子,你可能有一个包含数值“100”的字符串。但是,由于此值表示为字符串,因此无法对其执行任何数学计算。需要将此字符串类型显式转换为整数类型,然后才能对其执行任何数学计算。为了在Golang中将字符串转换为整数类型,您可以使用以下方法。
Atoi()函数
您可以使用strconv包的Atoi()函数将字符串转换为整数值。Atoi 代表 ASCII 到整数。Atoi()函数返回两个值:转换结果和错误(如果有)。
func Atoi(s string) (int, error)
package main
import (
"fmt"
"strconv"
"reflect"
)
func main() {
strVar := "100"
intVar, err := strconv.Atoi(strVar)
fmt.Println(intVar, err, reflect.TypeOf(intVar))
}
输出
100 <nil> int
ParseInt()函数
ParseInt解释给定基数(0,2到36)和位大小(0,64)中的字符串s,并返回相应的值i。此函数接受字符串参数,根据基参数将其转换为相应的int类型。默认情况下,它返回Int64值。
func ParseInt(s string, base int, bitSize int) (i int64, err error)
package main
import (
"fmt"
"reflect"
"strconv"
)
func main() {
strVar := "100"
intVar, err := strconv.ParseInt(strVar, 0, 8)
fmt.Println(intVar, err, reflect.TypeOf(intVar))
intVar, err = strconv.ParseInt(strVar, 0, 16)
fmt.Println(intVar, err, reflect.TypeOf(intVar))
intVar, err = strconv.ParseInt(strVar, 0, 32)
fmt.Println(intVar, err, reflect.TypeOf(intVar))
intVar, err = strconv.ParseInt(strVar, 0, 64)
fmt.Println(intVar, err, reflect.TypeOf(intVar))
}
输出
100 <nil> int64
100 <nil> int64
100 <nil> int64
100 <nil> int64
使用FMT.Sscan
fmt包提供了Sscan()函数,该函数扫描字符串参数并存储到变量中。此函数读取带有空格的字符串并赋值到连续的整数变量中。
package main
import (
"fmt"
"reflect"
)
func main() {
strVar := "100"
intValue := 0
_, err := fmt.Sscan(strVar, &intValue)
fmt.Println(intValue, err, reflect.TypeOf(intValue))
}
输出
100 <nil> int
系列文章