现在我正在执行以下操作以从字符串中解析整数,然后将其转换为int
类型:
tmpValue, _ := strconv.ParseInt(str, 10, 64) //returns int64
finalValue = int(tmpValue)
它非常冗长,而且绝对不漂亮,因为我还没有找到在ParseInt
调用中进行转换的方法。有没有更好的方法来做到这一点?
现在我正在执行以下操作以从字符串中解析整数,然后将其转换为int
类型:
tmpValue, _ := strconv.ParseInt(str, 10, 64) //returns int64
finalValue = int(tmpValue)
它非常冗长,而且绝对不漂亮,因为我还没有找到在ParseInt
调用中进行转换的方法。有没有更好的方法来做到这一点?
似乎该函数strconv.Atoi
可以执行您想要的操作,除了它的工作原理与位大小无关int
(您的代码似乎假设它是 64 位宽)。
如果您必须在程序中编写一次,那么我认为没有问题。如果您需要在几个地方,您可以编写一个简单的专业化包装器,例如:
func parseInt(s string) (int, error) {
i, err := strconv.ParseInt(str, 10, 32) // or 64 on 64bit tip
return int(i), err
}
标准库并不旨在为每种可能的数字类型和/或它们的组合提供(臃肿的)API。
不要忘记检查错误。例如,
package main
import (
"fmt"
"strconv"
)
func main() {
s := "123"
i, err := strconv.Atoi(s)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(i)
}
输出:
123