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

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

如何在 Go 中重用原始 strings.Reader?

如何在 Go 中重用原始 strings.Reader?

Go
慕桂英546537 2022-03-03 16:07:23
我有一個類型的輸入strings.Reader。給定輸入,我從中提取id并打印出來。然后,我將原始輸入傳遞給在其上執(zhí)行其他任務(wù)的通用函數(shù)。我能想到重用原件的唯一方法是閱讀內(nèi)容并將其傳遞給 abytes.Reader兩次。以下是在 Go 中實(shí)現(xiàn)這一目標(biāo)的唯一方法嗎?package mainimport (    "bytes"    "encoding/json"    "fmt"    "io"    "io/ioutil"    "log"    "strings")   type Food struct {    Id   int    `json:"id"`    Name string `json:"name"`}   func genericFunction(body io.Reader) {    content, err := ioutil.ReadAll(body)    if err != nil {        log.Fatal(err)    }    fmt.Println(string(content))}   func main() {    // Original input    reader := strings.NewReader("{\"id\": 10, \"name\": \"Pie\"}")    original, err := ioutil.ReadAll(reader)    if err != nil {        log.Fatal(err)    }       foodReader := bytes.NewReader(original)    decoder := json.NewDecoder(foodReader)    var food Food    decoder.Decode(&food)    fmt.Println("About to eat food", food.Id)    foodReader = bytes.NewReader(original)    genericFunction(foodReader)}   
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗 獲得超11個贊

strings.Reader您可以使用或回溯到字符串的開頭bytes.Reader


reader := bytes.NewReader([]byte("{\"id\": 10, \"name\": \"Pie\"}"))


decoder := json.NewDecoder(reader)

var food Food

decoder.Decode(&food)

fmt.Println("About to eat food", food.Id)


reader.Seek(0, 0)

genericFunction(reader)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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