回答

收藏

Golang 将字符串转换为 int64

技术问答 技术问答 376 人阅读 | 0 人回复 | 2023-09-12

我想把字符串变成 int64。我从strconv包里发现的是Atoi函数。它似乎将字符串转换为 int 并返回它:2 q0 c( f" ^& E) z0 d
    // Atoi is shorthand for ParseInt(s,10,0).func Atoi(s string) (i int,err error)              i64,err := ParseInt(s,    return int(i64),err}" }$ }3 q0 @! D2 e9 o( E; ?* \
ParseInt 其实回到一个 int64:
5 H" ?! A/ T: e4 B: |
    func ParseInt(s string,base int,bitSize int) (i int64,err error){     ...}
    8 r3 I# ?4 I' K+ l
因此,如果我想从字符串中获得 int64是否应避免使用 Atoi,而是使用 ParseInt?或者是否有 隐藏在某个地方Atio64?
& G) b7 C$ j& i% M                                                                0 a+ D9 i; G7 P6 s$ t3 g. N
    解决方案:                                                               
$ Z0 S4 c6 i. @& ]8 Q4 i                                                                不,没有 Atoi64.你也应该把 64 作为最后一个参数传递给 ParseInt,否则,它可能不会在 32 位系统上产生预期值。
& \3 n, V4 B/ w# S& R4 S添加缩写示例:
  Z& D9 m) R: V% Z, G& R2 N9 C* H* X. g
    var s string = "9223372036854775807"i,_ := strconv.ParseInt(s,10,64)fmt.Printf("val: %v ; type: %[1]T\n",i), z3 |! p3 V5 U! j+ x
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则