我想将字符串转换为int64。我从strconv
包中找到的是Atoi
函数。它似乎将一个字符串强制转换为int并返回它:
// Atoi is shorthand for ParseInt(s, 10, 0).
func Atoi(s string) (i int, err error) {
i64, err := ParseInt(s, 10, 0)
return int(i64), err
}
ParseInt实际上返回一个int64:
func ParseInt(s string, base int, bitSize int) (i int64, err error){
//...
}
因此,如果我想从字符串中获取int64,我应该避免使用Atoi,而是使用ParseInt吗?或者某处是否隐藏了Atio64?
答案 0 :(得分:128)
将字符串解析为int64示例:
// Use the max value for signed 64 integer. http://golang.org/pkg/builtin/#int64
var s string = "9223372036854775807"
i, err := strconv.ParseInt(s, 10, 64)
if err != nil {
panic(err)
}
fmt.Printf("Hello, %v with type %s!\n", i, reflect.TypeOf(i))
输出:
您好,9223372036854775807,类型为int64!
答案 1 :(得分:47)
不,没有Atoi64。您还应该将64作为最后一个参数传递给ParseInt,否则它可能不会在32位系统上产生预期值。
答案 2 :(得分:0)
另一种选择:
package main
import "fmt"
func main() {
var n int64
fmt.Sscan("100", &n)
fmt.Println(n == 100)
}