3 回答
TA贡献1818条经验 获得超3个赞
转换简单字符串
最简单的方法是使用该strconv.Atoi()功能。
请注意,还有许多其他方法。例如fmt.Sscan(),strconv.ParseInt()由于您可以指定基数和位大小,因此可以提供更大的灵活性。也如以下文档中所述strconv.Atoi():
Atoi等效于ParseInt(s,10,0),转换为int类型。
这是使用上述功能的示例(在Go Playground上尝试):
flag.Parse()
s := flag.Arg(0)
if i, err := strconv.Atoi(s); err == nil {
fmt.Printf("i=%d, type: %T\n", i, i)
}
if i, err := strconv.ParseInt(s, 10, 64); err == nil {
fmt.Printf("i=%d, type: %T\n", i, i)
}
var i int
if _, err := fmt.Sscan(s, &i); err == nil {
fmt.Printf("i=%d, type: %T\n", i, i)
}
输出(如果使用参数调用"123"):
i=123, type: int
i=123, type: int64
i=123, type: int
解析自定义字符串
还有一个方便的工具fmt.Sscanf(),它为格式字符串提供了更大的灵活性,您可以在输入中指定数字格式(例如宽度,基数等)以及其他额外的字符string。
这对于解析包含数字的自定义字符串非常有用。例如,如果"id:00123"以前缀形式提供输入,"id:"并且数字固定为5位数字,如果较短则用零填充,这很容易解析,如下所示:
s := "id:00123"
var i int
if _, err := fmt.Sscanf(s, "id:%5d", &i); err == nil {
fmt.Println(i) // Outputs 123
}
- 3 回答
- 0 关注
- 306 浏览
添加回答
举报