回答

收藏

Golang 将字符串转换为 int64

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

我想把字符串变成 int64。我从strconv包里发现的是Atoi函数。它似乎将字符串转换为 int 并返回它:& H' Z. c  ^- }7 N# U1 T6 s( n
    // Atoi is shorthand for ParseInt(s,10,0).func Atoi(s string) (i int,err error)              i64,err := ParseInt(s,    return int(i64),err}! {# V7 ~1 B; X; H9 r9 Y
ParseInt 其实回到一个 int64:8 O* B8 y* v6 t: ?& r
    func ParseInt(s string,base int,bitSize int) (i int64,err error){     ...}& R1 v; `9 n7 m/ F
因此,如果我想从字符串中获得 int64是否应避免使用 Atoi,而是使用 ParseInt?或者是否有 隐藏在某个地方Atio64?! Y) H, J. B1 \( I( k/ X, f6 b
                                                               
) T7 G" {2 T! U1 Z2 V1 m    解决方案:                                                               
' A0 B8 Y/ H( O' V/ v                                                                不,没有 Atoi64.你也应该把 64 作为最后一个参数传递给 ParseInt,否则,它可能不会在 32 位系统上产生预期值。
9 T8 e. B% n5 C添加缩写示例:
- f) h% O2 V8 T: }$ R, @( q( b
    var s string = "9223372036854775807"i,_ := strconv.ParseInt(s,10,64)fmt.Printf("val: %v ; type: %[1]T\n",i)
    : @( G5 `* i5 y  O7 j
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则