表达方式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