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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

按類型劃分的功能?如何重構(gòu)它?

按類型劃分的功能?如何重構(gòu)它?

Go
湖上湖 2021-08-23 16:59:41
我正在從文件中讀取 json 數(shù)據(jù)并使用 gob 編碼將其發(fā)送到遠(yuǎn)程服務(wù)器,但我對(duì)我的代碼不滿意,我嘗試了幾種方法來獲得更通用的功能,但我失敗了,唯一的方法我的代碼對(duì)每種類型都具有相同的功能。我嘗試使用 switch 類型,但以同樣的方式需要重復(fù)代碼以解組和編碼 gob 數(shù)據(jù)拜托,有人可以幫助我了解如何改進(jìn)嗎?兩種類型:type Data1 struct{ID intMessage string}type Data2 struct{ Serial int Height float64 Loss   float64 Temp   float64 Oil    float64}Data1 類型的函數(shù)func SenderData1(address string, buff *filebuffer.Buffer) {    var conn net.Conn    var err error    var line string    var obj Data1    for {        line, err = buff.Pop()        if err != nil {            log.Critical("Error Poping:", err.Error())            continue        }        if len(line) == 0 {            time.Sleep(1 * time.Second)            continue        }        if err := json.Unmarshal([]byte(line), &obj); err != nil {            log.Critical("Error Unmarshaling:", err.Error())            continue        }        for {            log.Info("Trying to connect with Server...")            conn, err = net.Dial(PROTO, address)            // If err try to connect again            if err != nil {                log.Error("Error connecting:", err.Error())                time.Sleep(1 * time.Second)                continue            }            // If connected break the loop            break        }        log.Debug("Sending ", obj, " to:", address)        encoder := gob.NewEncoder(conn)        err := encoder.Encode(obj)        if err != nil {            log.Critical("Error Encoding Gob:", err.Error())        }        // Timer between every sending, ie. Reading from buffer        time.Sleep(300 * time.Millisecond)        conn.Close()    }}
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 168 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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