1 回答
TA贡献1895条经验 获得超3个赞
没有[]byte与 strconv.Parse* 函数等效的函数(请参阅issue 2632)。使用 strconv 是目前处理此问题的最简单方法。
但是,您忽略了第一个错误,这是一个错误。你也可以缩短一些东西,并使用更常见的习语提前返回而不是增加缩进。我也会返回一个错误,而不是返回更多上下文信息的 bool。
func rangeSeq(b *bytes.Buffer) ([][]byte, error) {
q := bytes.Split(b.Bytes(), sep)
if len(q) != 2 {
return nil, fmt.Errorf("invalid value: %s", b)
}
var ret [][]byte
initial, err := strconv.Atoi(string(q[0]))
if err != nil {
return nil, err
}
last, err := strconv.Atoi(string(q[1]))
if err != nil {
return nil, err
}
if initial < last {
for i := initial; i <= last; i++ {
ret = append(ret, strconv.AppendInt(nil, i, 10))
}
}
return ret, nil
}
- 1 回答
- 0 关注
- 147 浏览
添加回答
举报