首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单值上下文中的多值strconv.ParseInt()

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

Stack Overflow用户
提问于 2017-11-06 13:22:48
回答 2查看 6.2K关注 0票数 3

我有以下代码:

代码语言:javascript
复制
var i2 uint64;
var err error;
i2, err = uint64(strconv.ParseInt(scanner.Text(), 64, 64));

我收到了一个错误:

代码语言:javascript
复制
multiple-value strconv.ParseInt() in single-value context

根据我在互联网上发现的一切,这意味着我忽略了ParseInt返回的两个参数,但我使用的是错误的。我知道这个错误可能很愚蠢,但我才刚开始学走,这让我很困惑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-06 13:24:59

表达式uint64(...)是一个类型转换,它不能有多个参数(操作数),但是由于strconv.ParseInt()有两个返回值,所以基本上都传递给类型转换,这是无效的。

相反,请这样做:

代码语言:javascript
复制
i, err := strconv.ParseInt(scanner.Text(), 64, 64)
// Check err
i2 := uint64(i)

请注意,基值不能大于36,因此当您将64作为基传递时,肯定会得到一个错误。

或者使用strconv.ParseUint(),它将立即返回一个uint值:

代码语言:javascript
复制
i, err := strconv.ParseUint(scanner.Text(), 16, 64)
// i is of type uint64, and ready to be used if err is nil

(在这里,我使用了一个有效的16基。使用你必须做的一切。)

还请参阅相关的question+answer:Go:单值上下文中的多个值

票数 9
EN

Stack Overflow用户

发布于 2017-11-06 13:46:09

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

ParseInt返回两个值:整数和错误。因此,不能在只允许一个值的函数参数中使用它们。您可以首先获得valueerror,然后在下一个操作中使用value

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47138003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档