回答

收藏

Golang 将字符串转换为 int64

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

我想把字符串变成 int64。我从strconv包里发现的是Atoi函数。它似乎将字符串转换为 int 并返回它:
9 p, j8 a2 E3 |' S9 W/ A1 o& i1 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}% V/ `' \+ r5 S$ h; X
ParseInt 其实回到一个 int64:
, U9 x3 [, u1 E2 [
    func ParseInt(s string,base int,bitSize int) (i int64,err error){     ...}
    . {3 \9 l0 z7 {; s) R& k2 K
因此,如果我想从字符串中获得 int64是否应避免使用 Atoi,而是使用 ParseInt?或者是否有 隐藏在某个地方Atio64?, S( Y. l; S: Y' l. j5 X% b
                                                               
+ ~9 h+ j3 e! Z3 |! V* P    解决方案:                                                                / q2 @  y# B) P0 w6 T0 ]
                                                                不,没有 Atoi64.你也应该把 64 作为最后一个参数传递给 ParseInt,否则,它可能不会在 32 位系统上产生预期值。
- `) }4 e" u2 `+ J; @添加缩写示例:
9 @( {) c+ R/ B) S8 k3 o
    var s string = "9223372036854775807"i,_ := strconv.ParseInt(s,10,64)fmt.Printf("val: %v ; type: %[1]T\n",i)
    4 v/ ?) A5 f; v$ X0 J
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则