第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在不訴諸字符串、strvconv 等的情況下使用 bytes.Buffer

在不訴諸字符串、strvconv 等的情況下使用 bytes.Buffer

Go
喵喵時光機 2021-11-01 16:47:30
我只想在不求助于 strconv 和字符串的情況下執(zhí)行此操作,但我不精通僅以字節(jié)為單位的工作:func rangeSeq(b *bytes.Buffer) ([][]byte, bool) {    q := bytes.Split(b.Bytes(), []byte{SEQ_RANGE})    if len(q) == 2 {        var ret [][]byte        il, lt := string(q[0]), string(q[1])        initial, err := strconv.ParseInt(il, 10, 64)        last, err := strconv.ParseInt(lt, 10, 64)        if err == nil {            if initial < last {                for i := initial; i <= last; i++ {                    out := strconv.AppendInt([]byte{}, i, 10)                    ret = append(ret, out)                }            }            return ret, true        }    }    return nil, false}建議?
查看完整描述

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

}


查看完整回答
反對 回復(fù) 2021-11-01
  • 1 回答
  • 0 關(guān)注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號