ParseInt 未转换为所需的类型

2024-03-27

这是我的代码:

包主

import (
    "fmt"
    "reflect"
    "strconv"
)

func main() {
   i, _ := strconv.ParseInt("10", 10, 8)
   fmt.Println(reflect.TypeOf(i))
}

我预计i长度为 8 位(第三个参数strconv.ParseInt)。然而它是 int64 (并且文档指出strconv.ParseInt将返回 int64)。

如果 ParseInt 总是返回 int64,那它还有什么意义(为什么不直接使用 Atoi 呢?)


请注意该函数的文档:

bitSize 参数指定结果必须的整数类型 适合。位大小 0、8、16、32 和 64 对应于 int、int8、 int16、int32 和 int64。对于低于 0 或高于 64 的 bitSize,错误是 回。

因此保证您可以将结果转换为字节byte(i).

Go 还没有泛型,所以只有一个ParseInt可以接受指向多个整数类型的指针是很困难的。相反,保证是通过bitSize争论

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ParseInt 未转换为所需的类型 的相关文章