【发布时间】:2022-01-23 14:36:01
【问题描述】:
对于编号字符串 (1234),我通常使用包 strconv 和函数 Atoi 在 Go 中从字符串转换为 int。但是,如果编号字符串以前导零开头(例如01234),那么解决此问题的惯用方法是什么?
切片字符串然后将[]string 转换为[]int,是一种方法,但它是最好/惯用的方法吗?
更新 1:
从输入字符串 01234,预期输出 01234 为任何类型的 int(任何类型的简单或组合类型的 int,例如 foo := "01234" 到 bar = []int{0, 1, 2, 3, 4})。
当变量有一个或多个前导零时(例如@ 987654332@ 或 00001)。
更新 2: 只是为了完全清楚,因为我觉得这个问题可以在未来澄清:foo, _ := strconv.Atoi("01234") 返回 1234 作为 int(可以获得相同的结果以其他方式使用strings 包等)。
这里的问题是,我如何(如果可能,在 Go 惯用语中)得到结果 with 前导零,即01234(而不是1234)类型为@ 987654340@?
【问题讨论】:
-
您的预期输出是多少 - 1234?还是您想以 8 基数处理这个数字?
-
据我所知,您可以使用带有前导零的
strconv.Atoi:go.dev/play/p/ZdQI7LGiipf