1 回答

TA貢獻1895條經(jīng)驗 獲得超3個贊
沒有[]byte與 strconv.Parse* 函數(shù)等效的函數(shù)(請參閱issue 2632)。使用 strconv 是目前處理此問題的最簡單方法。
但是,您忽略了第一個錯誤,這是一個錯誤。你也可以縮短一些東西,并使用更常見的習(xí)語提前返回而不是增加縮進。我也會返回一個錯誤,而不是返回更多上下文信息的 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 關(guān)注
- 178 瀏覽
添加回答
舉報