Nis*_*nio 2 parsing type-conversion go
我有以下代码:
var i2 uint64;
var err error;
i2, err = uint64(strconv.ParseInt(scanner.Text(), 64, 64));
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
multiple-value strconv.ParseInt() in single-value context
Run Code Online (Sandbox Code Playgroud)
根据我在互联网上找到的所有内容,这意味着我忽略了ParseInt返回的两个参数,但我使用的是错误的.我知道也许错误是非常愚蠢的,但我刚开始学习Go,这让我很困惑.
表达式uint64(...)是一个类型转换,它不能有多个参数(操作数),但由于strconv.ParseInt()有2个返回值,你基本上都将两者传递给类型转换,这是无效的.
而是这样做:
i, err := strconv.ParseInt(scanner.Text(), 64, 64)
// Check err
i2 := uint64(i)
Run Code Online (Sandbox Code Playgroud)
请注意,基数不能大于36,因此当您64作为基数传递时,您肯定会收到错误.
或使用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
Run Code Online (Sandbox Code Playgroud)
(这里我使用了一个有效的16基础.使用你需要的任何东西.)
另请参阅相关问题+答案:Go:单值上下文中的多个值
| 归档时间: |
|
| 查看次数: |
2422 次 |
| 最近记录: |