单值上下文中的多值 strconv.ParseInt()

2024-07-03

我有以下代码:

var i2 uint64;
var err error;
i2, err = uint64(strconv.ParseInt(scanner.Text(), 64, 64));

我收到了错误:

multiple-value strconv.ParseInt() in single-value context

根据我在互联网上找到的所有内容,这意味着我忽略了 ParseInt 返回的两个参数,但我使用了 err. 我知道也许这个错误非常愚蠢,但我刚刚开始学习 Go,这让我很困惑。


表达方式uint64(...)是一种类型转换 https://golang.org/ref/spec#Conversions,并且它不能有多个参数(操作数),但是因为strconv.ParseInt() https://golang.org/pkg/strconv/#ParseInt有 2 个返回值,您基本上将这两个值都传递给类型转换,这是无效的。

相反,这样做:

i, err := strconv.ParseInt(scanner.Text(), 64, 64)
// Check err
i2 := uint64(i)

注意基数不能大于36,所以当你通过时肯定会得到一个错误64作为基础。

Or use strconv.ParseUint() https://golang.org/pkg/strconv/#ParseUint这将返回给你一个uint立即值:

i, err := strconv.ParseUint(scanner.Text(), 16, 64)
// i is of type uint64, and ready to be used if err is nil

(这里我使用了一个有效的,16根据。使用任何你需要的东西。)

另请参阅相关问题+答案:Go:单值上下文中的多个值 https://stackoverflow.com/questions/28227095/go-multiple-value-in-single-value-context/28233172#28233172

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

单值上下文中的多值 strconv.ParseInt() 的相关文章

随机推荐