斯特康夫。ParseInt:解析"18446744073709551615":值超出范围



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>

相关内容

  • 没有找到相关文章

最新更新