strconv.ParseInt:正在解析“18446744073709551615”:值超出范围

strconv.ParseInt: parsing "18446744073709551615": value out of range

strconv.ParseInt 解析 uint64 最大值时是否正常?

i, err := strconv.ParseInt("18446744073709551615", 10, 64)
fmt.Println(i, err)

我收到一个错误:"strconv.ParseInt: parsing "18446744073709551615": value out of range",当 uint64 的最大允许值为:18446744073709551615

你能解释一下这种行为吗?

https://golang.org/src/builtin/builtin.go?s=1026:1044#L26

调用 ParseUint 解析无符号整数。

ParseInt 函数解析有符号整数。最大有符号整数为 9223372036854775807.

根据评论,我将您的代码转载如下:

package main

import (
    "fmt"
    "strconv"
)

func main() {

    i, err := strconv.ParseUint("18446744073709551615", 10, 64)
    fmt.Println(i, err)

}

输出:

18446744073709551615 <nil>